<?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-7966116666272165780</id><updated>2012-01-26T15:09:19.749-08:00</updated><category term='Network'/><category term='Lighttpd'/><category term='GWT'/><category term='MySQL'/><category term='JAVA'/><category term='PDF'/><category term='Outlook'/><category term='PC Problem'/><category term='Others'/><category term='Encryption'/><category term='Windows'/><category term='XMLRPC'/><category term='Web service'/><category term='Open Source Projects'/><category term='Web'/><category term='C#'/><category term='Zebra Printer'/><category term='PHP'/><category term='Artificial Intelligence'/><category term='Database'/><category term='Linux'/><category term='Eclipse'/><category term='Google Map'/><category term='Software'/><category term='Mathematic'/><category term='Compact Framework'/><category term='GWT GXT'/><category term='QR Code'/><category term='Chart'/><category term='GXT'/><category term='.NET'/><title type='text'>peyotest</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>72</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-9050475807108788476</id><published>2012-01-24T06:15:00.000-08:00</published><updated>2012-01-26T15:09:19.760-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT GXT'/><title type='text'>GXT set DateField value from string</title><content type='html'>Here is the code to set GXT datefield value from the date string.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: black; border: 1px dashed #999999; color: white; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;String sdate="24-01-2012";  //24 Jan 2012&lt;br /&gt;DateTimeFormat dformat = DateTimeFormat.getFormat("dd-MM-yyyy");&lt;br /&gt;DateField date2 = new DateField();&lt;br /&gt;date2.getPropertyEditor().setFormat(dtFormat);&lt;br /&gt;Date dDate= dformat.parse(sdate);&lt;br /&gt;date2.setValue(&lt;/code&gt;&lt;code&gt;dDate&lt;/code&gt;&lt;code&gt;);&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-9050475807108788476?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/9050475807108788476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=9050475807108788476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/9050475807108788476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/9050475807108788476'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2012/01/gxt-set-datefield-value-from-string.html' title='GXT set DateField value from string'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-4142508026419486853</id><published>2012-01-24T06:05:00.000-08:00</published><updated>2012-01-24T06:06:32.409-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='GXT'/><title type='text'>GXT Grid Column Alignment</title><content type='html'>How to align GXT grid column?&lt;br /&gt;Answer : it can be done at ColumnConfig.&lt;br /&gt;Here is sample code :&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: black; border: 1px dashed #999999; color: white; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;List&lt;columnconfig&gt; configs = new ArrayList&lt;columnconfig&gt;();&lt;br /&gt;&lt;br /&gt;ColumnConfig column = new ColumnConfig();&lt;br /&gt;column.setId("name");&lt;br /&gt;column.setHeader("Company");&lt;br /&gt;column.setWidth(200);&lt;br /&gt;configs.add(column);&lt;br /&gt;&lt;br /&gt;column = new ColumnConfig();&lt;br /&gt;column.setId("symbol");&lt;br /&gt;column.setHeader("Symbol");&lt;br /&gt;column.setWidth(100);&lt;br /&gt;configs.add(column);&lt;br /&gt;&lt;br /&gt;column = new ColumnConfig();&lt;br /&gt;column.setId("last");&lt;br /&gt;column.setHeader("Last");&lt;br /&gt;column.setAlignment(HorizontalAlignment.RIGHT);&lt;br /&gt;column.setWidth(75);&lt;br /&gt;column.setRenderer(gridNumber);&lt;br /&gt;configs.add(column);&lt;br /&gt;&lt;br /&gt;column = new ColumnConfig("change", "Change", 100);&lt;br /&gt;column.setAlignment(HorizontalAlignment.RIGHT);&lt;br /&gt;column.setRenderer(change);&lt;br /&gt;configs.add(column);&lt;br /&gt;&lt;/columnconfig&gt;&lt;/columnconfig&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;The full example can be found here :&lt;br /&gt;&lt;a href="http://www.java2s.com/Code/Java/GWT/SetcolumnalignmentnameandheightExtGWT.htm"&gt;http://www.java2s.com/Code/Java/GWT/SetcolumnalignmentnameandheightExtGWT.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-4142508026419486853?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/4142508026419486853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=4142508026419486853' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4142508026419486853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4142508026419486853'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2012/01/gxt-grid-column-alignment.html' title='GXT Grid Column Alignment'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-6176517754321482587</id><published>2012-01-24T05:58:00.000-08:00</published><updated>2012-01-24T05:58:18.982-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='GXT'/><title type='text'>GWT Anchor Image Link</title><content type='html'>In my project, I need to display image link in GXT grid with the cursor changed to pointer when the cursor hover on the image. When clicked, it will open a new window.&lt;br /&gt;&lt;br /&gt;Here is the code :&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: black; border: 1px dashed #999999; color: white; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;Anchor anchor =new Anchor();&lt;br /&gt;final Image image = new Image("../resources/images/pdf.png");&lt;br /&gt;&lt;br /&gt;anchor.addMouseOverHandler(new MouseOverHandler() {&lt;br /&gt;    &lt;br /&gt;    @Override&lt;br /&gt;    public void onMouseOver(MouseOverEvent event) {&lt;br /&gt;        DOM.setStyleAttribute(image.getElement(), "cursor", "pointer");&lt;br /&gt;    }&lt;br /&gt;});&lt;br /&gt;                &lt;br /&gt;anchor.addMouseOutHandler(new MouseOutHandler() {&lt;br /&gt;    &lt;br /&gt;    @Override&lt;br /&gt;    public void onMouseOut(MouseOutEvent event) {&lt;br /&gt;        DOM.setStyleAttribute(image.getElement(), "cursor", "default");                        &lt;br /&gt;    }&lt;br /&gt;});&lt;br /&gt;anchor.addClickHandler(new ClickHandler() {&lt;br /&gt;    &lt;br /&gt;    @Override&lt;br /&gt;    public void onClick(ClickEvent event) {&lt;br /&gt;        String url="upload/" + model.get(property).toString();&lt;br /&gt;        Window.open(url, "_blank", "");&lt;br /&gt;        Info.display("Hardware", "Show Datasheet");&lt;br /&gt;    }&lt;br /&gt;});                &lt;br /&gt;anchor.getElement().appendChild(image.getElement());            &lt;br /&gt;return anchor;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-6176517754321482587?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/6176517754321482587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=6176517754321482587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6176517754321482587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6176517754321482587'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2012/01/gwt-anchor-image-link.html' title='GWT Anchor Image Link'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-5170895916059825156</id><published>2011-09-14T03:08:00.000-07:00</published><updated>2011-09-14T03:16:22.483-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Map'/><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT 2.4. Static Google Map in Frame not working</title><content type='html'>Before this static Google map can be viewed using Frame object and what I need to do is to give the URL of the static map. Please refer to my previous post &lt;a href="http://peyotest.blogspot.com/2011/03/gwt-google-map-static-and-dynamic.html"&gt;http://peyotest.blogspot.com/2011/03/gwt-google-map-static-and-dynamic.html&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;Unfortunately, when I upgraded the GWT to version 2.4, it didn't display the image.&lt;br /&gt;It works fine with web page but not image.&lt;br /&gt;So I searched in Google, but there is no one having problem like I did.&lt;br /&gt;&lt;br /&gt;Since the static map is an image, so I decided to use image object in GWT and it can be loaded from URL. That's nice and easy solution for me.&lt;br /&gt;&lt;br /&gt;Here is the new code :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: black; border: 1px dashed rgb(153, 153, 153); color: white; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;package com.vcari.jscadav2.client;&lt;br /&gt;&lt;br /&gt;import com.google.gwt.user.client.Element;&lt;br /&gt;import com.google.gwt.user.client.ui.Frame;&lt;br /&gt;import com.google.gwt.user.client.ui.Image;&lt;br /&gt;&lt;br /&gt;public class SiteMapStaticMapPanel extends SiteMapPanel {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public SiteMapStaticMapPanel(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Frame frame = new Frame("http://google.com");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; final Image image = new Image();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void onRender(Element parent, int index) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onRender(parent, index);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //setLayout(new FitLayout());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setBorders(false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; image.setWidth("640");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; image.setHeight("430");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; image.setVisible(true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add(image);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Set map center to the defined latitude and longitude&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @param latitude&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @param longitude&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setMapCenter(Double latitude, Double longitude, int zoomLevel) {&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; Integer width=this.getWidth();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Integer height=this.getHeight();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String url="http://maps.google.com/maps/api/staticmap?center={0},{1}&amp;amp;zoom={2}&amp;amp;size={3}x{4}&amp;amp;maptype=roadmap&amp;amp;sensor=false";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url+="&amp;amp;markers=color:red7C%{0},{1}";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //url=String.format(url, latitude,longitude,zoomLevel,width,height);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url=url.replace("{0}", latitude.toString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url=url.replace("{1}", longitude.toString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url=url.replace("{2}", String.valueOf(zoomLevel));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url=url.replace("{3}", width.toString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url=url.replace("{4}", height.toString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url=url.replace("{5}",&amp;nbsp; Application.areaName);&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; image.setUrl(url);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-5170895916059825156?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/5170895916059825156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=5170895916059825156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/5170895916059825156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/5170895916059825156'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/09/gwt-24-static-google-map-in-frame-not.html' title='GWT 2.4. Static Google Map in Frame not working'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-4598082931775169005</id><published>2011-08-17T23:33:00.000-07:00</published><updated>2011-08-17T23:33:11.027-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PC Problem'/><title type='text'>Win 7  Can't  Login to Windows Sharing</title><content type='html'>There is a PC with newly installed Windows 7.&lt;br /&gt;The computer failed to be connected to my office's file server on Windows 2003.&lt;br /&gt;The server keep fail to authenticate the computer and the computer keep asking for user name and password.&lt;br /&gt;&lt;br /&gt;The solution:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Browse to "Local Policies" -&amp;gt; "Security Options".&amp;nbsp;&lt;/li&gt;&lt;li&gt;Now look for the  entry "Network Security: LAN Manager authentication level" and open it.&amp;nbsp;&lt;/li&gt;&lt;li&gt; Click on the dropdown menu and select "Send LM &amp;amp; NTLM - use NTLMv2  session security if negotiated".&amp;nbsp;  Apply the settings.&lt;/li&gt;&lt;/ul&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Jonathan Ravzin (MCT - Microsoft Certified Trainer)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href="http://social.technet.microsoft.com/Forums/en-US/w7itpronetworking/thread/68ffbe2a-09a7-4e29-859c-ca1aaf75dcd1/%20"&gt;http://social.technet.microsoft.com/Forums/en-US/w7itpronetworking/thread/68ffbe2a-09a7-4e29-859c-ca1aaf75dcd1/ &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-4598082931775169005?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/4598082931775169005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=4598082931775169005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4598082931775169005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4598082931775169005'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/08/win-7-cant-login-to-windows-sharing.html' title='Win 7  Can&apos;t  Login to Windows Sharing'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-8029867632096881383</id><published>2011-05-19T05:35:00.000-07:00</published><updated>2011-05-19T05:35:53.709-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Others'/><title type='text'>Ghost Explorer</title><content type='html'>Ghost Explorer can be downloaded for free from Symantec.&lt;br /&gt;&lt;br /&gt;&lt;a href="ftp://ftp.symantec.com/public/english_us_canada/products/ghost/utilities/GHO_Explorer.exe"&gt;ftp://ftp.symantec.com/public/english_us_canada/products/ghost/utilities/GHO_Explorer.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Using this software, ghost file can be view and extracted.&lt;br /&gt;I use ghost software to create image for my Embedded Linux on VortexSx86.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-8029867632096881383?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/8029867632096881383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=8029867632096881383' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8029867632096881383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8029867632096881383'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/05/ghost-explorer.html' title='Ghost Explorer'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-8338239107153590222</id><published>2011-05-17T08:03:00.000-07:00</published><updated>2011-05-17T08:05:28.583-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='GXT'/><title type='text'>GXT Paging ListView</title><content type='html'>Simply bind the store to ListView and loader to PagingToolBar.&lt;br /&gt;Here is the source code. You might need to refer to my previous posting on JSON reader and paging grid.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #ffffff; background-color: #000000;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;/*&lt;br /&gt; * To change this template, choose Tools &amp;#124; Templates&lt;br /&gt; * and open the template in the editor.&lt;br /&gt; */&lt;br /&gt;package com.ppktechnology.assetmanagement.client;&lt;br /&gt;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;import com.extjs.gxt.ui.client.Registry;&lt;br /&gt;import com.extjs.gxt.ui.client.data.BaseListLoader;&lt;br /&gt;import com.extjs.gxt.ui.client.data.BasePagingLoader;&lt;br /&gt;import com.extjs.gxt.ui.client.data.BeanModel;&lt;br /&gt;import com.extjs.gxt.ui.client.data.BeanModelReader;&lt;br /&gt;import com.extjs.gxt.ui.client.data.ListLoadResult;&lt;br /&gt;import com.extjs.gxt.ui.client.data.ListLoader;&lt;br /&gt;import com.extjs.gxt.ui.client.data.ModelData;&lt;br /&gt;import com.extjs.gxt.ui.client.data.RpcProxy;&lt;br /&gt;import com.extjs.gxt.ui.client.event.Events;&lt;br /&gt;import com.extjs.gxt.ui.client.event.ListViewEvent;&lt;br /&gt;import com.extjs.gxt.ui.client.event.Listener;&lt;br /&gt;import com.extjs.gxt.ui.client.event.SelectionChangedEvent;&lt;br /&gt;import com.extjs.gxt.ui.client.store.ListStore;&lt;br /&gt;import com.extjs.gxt.ui.client.util.Format;&lt;br /&gt;import com.extjs.gxt.ui.client.widget.ContentPanel;&lt;br /&gt;import com.extjs.gxt.ui.client.widget.LayoutContainer;&lt;br /&gt;import com.extjs.gxt.ui.client.widget.ListView;&lt;br /&gt;import com.extjs.gxt.ui.client.widget.layout.FitLayout;&lt;br /&gt;import com.extjs.gxt.ui.client.widget.layout.FlowLayout;&lt;br /&gt;import com.extjs.gxt.ui.client.widget.toolbar.PagingToolBar;&lt;br /&gt;import com.google.gwt.core.client.GWT;&lt;br /&gt;import com.google.gwt.user.client.Element;&lt;br /&gt;import com.google.gwt.user.client.rpc.AsyncCallback;&lt;br /&gt;import com.ppktechnology.assetmanagement.client.model.ImagesModel;&lt;br /&gt;import com.vcari.client.utils.DataUtils;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * &lt;br /&gt; * @author peyo&lt;br /&gt; */&lt;br /&gt;@SuppressWarnings({ &amp;quot;rawtypes&amp;quot;, &amp;quot;unchecked&amp;quot;, &amp;quot;unused&amp;quot; })&lt;br /&gt;public class ImagesList extends LayoutContainer {&lt;br /&gt;&lt;br /&gt;    ListStore store = ImagesModel.getInstance().getPagingStore();&lt;br /&gt;    int limit = 20;&lt;br /&gt;&lt;br /&gt;    @Override&lt;br /&gt;    protected void onRender(Element parent, int index) {&lt;br /&gt;        super.onRender(parent, index);&lt;br /&gt;        final ContentPanel panel = new ContentPanel();&lt;br /&gt;        setLayout(new FitLayout());&lt;br /&gt;        &lt;br /&gt;        panel.setCollapsible(true);&lt;br /&gt;        panel.setAnimCollapse(false);&lt;br /&gt;        panel.setFrame(true);&lt;br /&gt;        panel.setId(&amp;quot;images-view&amp;quot;);&lt;br /&gt;        panel.setHeading(&amp;quot;Simple ListView (0 items selected)&amp;quot;);&lt;br /&gt;        panel.setBodyBorder(false);&lt;br /&gt;        panel.setLayout(new FitLayout());&lt;br /&gt;                &lt;br /&gt;        ListView&amp;lt;ModelData&amp;gt; view = new ListView&amp;lt;ModelData&amp;gt;() {&lt;br /&gt;            @Override&lt;br /&gt;            protected ModelData prepareData(ModelData model) {&lt;br /&gt;                String s = model.get(&amp;quot;imagedesc&amp;quot;);&lt;br /&gt;                model.set(&amp;quot;imagedesc&amp;quot;, Format.ellipse(s, 15));&lt;br /&gt;                String thumbnail=&amp;quot;images/&amp;quot; +  model.get(&amp;quot;thumbnail&amp;quot;);&lt;br /&gt;                model.set(&amp;quot;thumbnail&amp;quot;, DataUtils.formatURL(thumbnail));&lt;br /&gt;                String imagefile=&amp;quot;images/&amp;quot; +  model.get(&amp;quot;imagefile&amp;quot;);&lt;br /&gt;                model.set(&amp;quot;imagefile&amp;quot;, DataUtils.formatURL(imagefile));&lt;br /&gt;                return model;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        };&lt;br /&gt;&lt;br /&gt;         view.addListener(Events.OnDoubleClick, new Listener&amp;lt;ListViewEvent&amp;lt;ModelData&amp;gt;&amp;gt;() {&lt;br /&gt;&lt;br /&gt;                @Override&lt;br /&gt;                public void handleEvent(ListViewEvent&amp;lt;ModelData&amp;gt; be) {&lt;br /&gt;                    String imgurl = be.getModel().get(&amp;quot;imagefile&amp;quot;);&lt;br /&gt;                    com.google.gwt.user.client.Window.open(imgurl, &amp;quot;_blank&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;                }&lt;br /&gt;            });&lt;br /&gt;        &lt;br /&gt;        final PagingToolBar pagingToolBar = new PagingToolBar(limit);&lt;br /&gt;        pagingToolBar.bind((BasePagingLoader) store.getLoader());&lt;br /&gt;        panel.setBottomComponent(pagingToolBar);&lt;br /&gt;          &lt;br /&gt;        view.setTemplate(getTemplate());&lt;br /&gt;        view.setStore(store);&lt;br /&gt;        view.setItemSelector(&amp;quot;div.thumb-wrap&amp;quot;);&lt;br /&gt;        view.getSelectionModel().addListener(Events.SelectionChange, new Listener&amp;lt;SelectionChangedEvent&amp;lt;ModelData&amp;gt;&amp;gt;() {&lt;br /&gt;&lt;br /&gt;            public void handleEvent(SelectionChangedEvent&amp;lt;ModelData&amp;gt; be) {&lt;br /&gt;                panel.setHeading(&amp;quot;Simple ListView (&amp;quot; + be.getSelection().size() + &amp;quot; items selected)&amp;quot;);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        });&lt;br /&gt;        panel.add(view);&lt;br /&gt;        add(panel);&lt;br /&gt;        store.getLoader().load();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private native String getTemplate() /*-{&lt;br /&gt;        return [ '&amp;lt;tpl for=&amp;quot;.&amp;quot;&amp;gt;', '&amp;lt;div class=&amp;quot;thumb-wrap&amp;quot; id=&amp;quot;{imageid}&amp;quot;&amp;gt;',&lt;br /&gt;                '&amp;lt;div class=&amp;quot;thumb&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;{imagefile}&amp;quot; title=&amp;quot;{imagedesc}&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;',&lt;br /&gt;                '&amp;lt;span class=&amp;quot;x-editable&amp;quot;&amp;gt;{imagedesc}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;', '&amp;lt;/tpl&amp;gt;',&lt;br /&gt;                '&amp;lt;div class=&amp;quot;x-clear&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;' ].join(&amp;quot;&amp;quot;);&lt;br /&gt;&lt;br /&gt;    }-*/;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-8338239107153590222?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/8338239107153590222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=8338239107153590222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8338239107153590222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8338239107153590222'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/05/simply-bind-store-to-listview-and.html' title='GXT Paging ListView'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-672617016552265949</id><published>2011-05-07T05:34:00.000-07:00</published><updated>2011-05-07T05:34:58.652-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Eclipse JAVA Formatter Line Wrapper Setting</title><content type='html'>Personally I don't like Eclipse line wrapper default setting since it's not properly wrap my code.&lt;br /&gt;As the result, my code look ugly and harder to be read.&lt;br /&gt;&lt;br /&gt;Before : (It will look worse if the code is longer)&lt;br /&gt;&lt;pre style="background-color: black; border: 1px dashed rgb(153, 153, 153); color: white; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;adminTree.addListener(Events.OnDoubleClick,&lt;br /&gt;                new Listener&amp;lt;TreePanelEvent&amp;lt;ModelData&amp;gt;&amp;gt;() {&lt;br /&gt;&lt;br /&gt;                    @SuppressWarnings("unchecked")&lt;br /&gt;                    @Override&lt;br /&gt;                    public void handleEvent(TreePanelEvent&amp;lt;ModelData&amp;gt; be) {&lt;br /&gt;                        ModelData p = be.getItem();&lt;br /&gt;                        System.out.println(p.get("name"));&lt;br /&gt;                        // MenuHandler.handleMenu(p);&lt;br /&gt;                        Application.defaultViewNavigationTree.getTree()&lt;br /&gt;                                .getSelectionModel().select(p, false);&lt;br /&gt;                        Application.defaultViewNavigationTree.getTree()&lt;br /&gt;                                .setExpanded(p, true);&lt;br /&gt;                    }&lt;br /&gt;                });&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Finally I found the solution.&lt;br /&gt;&lt;br /&gt;ANSWER:&lt;br /&gt;Source: &lt;a href="http://minimalbugs.com/questions/disable-line-wrapping-in-eclipse"&gt;http://minimalbugs.com/questions/disable-line-wrapping-in-eclipse&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can’t disable line wrapping, but you can add more maximum characters to appear in a single line, by accessing :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Window – Preferences – Java – Code Style – Formatter – Edit&lt;/li&gt;&lt;li&gt;Insert New profile name because you can’t edit the default profile&lt;/li&gt;&lt;li&gt;Click Line wrapping tab in the maximum width, put the maximum character you wanted to be appeared in a single line&lt;/li&gt;&lt;/ul&gt;After :&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #ffffff; background-color: #000000;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;adminTree.addListener(Events.OnDoubleClick, new Listener&amp;lt;TreePanelEvent&amp;lt;ModelData&amp;gt;&amp;gt;() {&lt;br /&gt;&lt;br /&gt;            @SuppressWarnings(&amp;quot;unchecked&amp;quot;)&lt;br /&gt;            @Override&lt;br /&gt;            public void handleEvent(TreePanelEvent&amp;lt;ModelData&amp;gt; be) {&lt;br /&gt;                ModelData p = be.getItem();&lt;br /&gt;                System.out.println(p.get(&amp;quot;name&amp;quot;));&lt;br /&gt;                // MenuHandler.handleMenu(p);&lt;br /&gt;                Application.defaultViewNavigationTree.getTree().getSelectionModel().select(p, false);&lt;br /&gt;                Application.defaultViewNavigationTree.getTree().setExpanded(p, true);&lt;br /&gt;            }&lt;br /&gt;        });&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-672617016552265949?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/672617016552265949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=672617016552265949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/672617016552265949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/672617016552265949'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/05/eclipse-java-formatter-line-wrapper.html' title='Eclipse JAVA Formatter Line Wrapper Setting'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-3765317052260539155</id><published>2011-05-04T04:31:00.000-07:00</published><updated>2011-05-04T04:31:23.663-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>OCI_INVALID_HANDLE (ext\pdo_oci\oci_driver.c:579)</title><content type='html'>In my project, I need to pull data from Oracle Server.&lt;br /&gt;I need to enable oci8 and PDO_OCI extensions but there is a problem since PHP couldn't find OCI.dll.&lt;br /&gt;I had downloaded the oracle Instant Client, extract and copy the oci.dll file to windows folder and successfully enable the extension. But when I tried to connect to the server, PHP gave me this error message:&lt;br /&gt;&lt;br /&gt;OCI_INVALID_HANDLE (ext\pdo_oci\oci_driver.c:579) &lt;br /&gt;&lt;br /&gt;So, I take a look on oracle Instant Client installation manual. Actually, it's very simple solution.&lt;br /&gt;&lt;br /&gt;How to solve : &lt;br /&gt;&lt;ol&gt;&lt;li&gt;Set the variable  &lt;code&gt;ORACLE_HOME &lt;/code&gt;in the Windows environment setting&amp;nbsp; to the path of the extracted Oracle Instant Client folder. &lt;/li&gt;&lt;li&gt;Restart Apache&lt;/li&gt;&lt;/ol&gt;It works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-3765317052260539155?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/3765317052260539155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=3765317052260539155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3765317052260539155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3765317052260539155'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/05/ociinvalidhandle-extpdoociocidriverc579.html' title='OCI_INVALID_HANDLE (ext\pdo_oci\oci_driver.c:579)'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-4647416002537606875</id><published>2011-04-28T23:55:00.000-07:00</published><updated>2011-05-07T05:35:28.148-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT - PHP on Apache 3rd Review</title><content type='html'>Yesterday, on the GWT training session at PPK, Ilhamy (one of my internship student) told me he found another way to communicate GWT with PHP. Actually it's very simple solution without need to configure Apache.&lt;br /&gt;&lt;br /&gt;In the solution, the project must located in /htdocs folder and compiler argument must be configured.&lt;br /&gt;&lt;br /&gt;The original argument:&lt;br /&gt;&lt;br /&gt;-remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -startupUrl GWTPHP.html -logLevel INFO -codeServerPort 9997 -port 8888 -war C:\xampp\htdocs\GWTPHP\war com.vcari.jscadav2.Jscadav2_gwt&lt;br /&gt;&lt;br /&gt;New configuration&lt;br /&gt;&lt;br /&gt;-noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -startupUrl http://localhost/GwtPhp/war/GWTPHP.html -logLevel INFO -codeServerPort 9997 -war C:\xampp\htdocs\GWTPHP\war com.peyotest.gwtphp.GWTPHP&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Steps :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;add -noserver&amp;nbsp;&lt;/li&gt;&lt;li&gt;change startup url from GWTPHP.html to full url http://localhost/GwtPhp/war/GWTPHP.html&lt;/li&gt;&lt;li&gt;remove server port&amp;nbsp;  -codeServerPort 9997&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;The full article about this can be found here:&lt;br /&gt;&lt;a href="http://cambiatablog.wordpress.com/2010/11/22/gwt-developing-with-hosted-mode-and-phpxampp/"&gt;http://cambiatablog.wordpress.com/2010/11/22/gwt-developing-with-hosted-mode-and-phpxampp/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-4647416002537606875?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/4647416002537606875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=4647416002537606875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4647416002537606875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4647416002537606875'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/04/gwt-php-on-apache-3rd-review.html' title='GWT - PHP on Apache 3rd Review'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-5314798189997607705</id><published>2011-04-01T15:57:00.000-07:00</published><updated>2011-04-01T16:12:17.093-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='XMLRPC'/><title type='text'>GWT XMLRPC</title><content type='html'>On my previous work on XMLRPC, I had work with C# and PHP.&lt;br /&gt;This morning I decide to try a library written for GWT.&lt;br /&gt;The project can be found at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/xmlrpc-gwt/"&gt;http://code.google.com/p/xmlrpc-gwt/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Since there is no compiled .jar files, so I need create the .jar file myself.&lt;br /&gt;Since I just used Eclipse for 2 weeks (before this using Netbeans + GWT4NB), it take me a long way just to create the .jar file. Actually to create .jar file is very simple step and require less than a minute.&lt;br /&gt;&lt;br /&gt;Simply put the library inherits setting in the project.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #ffffff; background-color: #000000;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&amp;lt;inherits name='com.fredhat.gwt.xmlrpc.XMLRPC'&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;I just modify the sample given on the project's wiki and call the add function in my previous XMLRPC server sample.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #ffffff; background-color: #000000;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;XmlRpcClient client = new XmlRpcClient(&amp;quot;http://127.0.0.1/xmlrpc/server.php&amp;quot;);&lt;br /&gt;String methodName = &amp;quot;add&amp;quot;;&lt;br /&gt;Object[] params = new Object[]{3, 4};&lt;br /&gt; &lt;br /&gt;XmlRpcRequest&amp;lt;Integer&amp;gt; request = new XmlRpcRequest&amp;lt;Integer&amp;gt;(client, methodName, params, new AsyncCallback&amp;lt;Integer&amp;gt;() {&lt;br /&gt;   public void onSuccess(Integer response) {&lt;br /&gt;           // Handle integer response logic here&lt;br /&gt;     Console.writeLine(response);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public void onFailure(Throwable response) {&lt;br /&gt;           String failedMsg = response.getMessage();&lt;br /&gt;           // Put other failed response handling logic here&lt;br /&gt;           Console.writeLine(failedMsg);&lt;br /&gt;   }&lt;br /&gt;});&lt;br /&gt;request.execute();&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Done and it work just fine.&lt;br /&gt;The .jar file can be found &lt;a href="https://docs.google.com/leaf?id=0B03hZTEkph8tNDJjYWVmYTctMTg1ZC00MDkxLWE5NzYtOTk2NGU3NDhjODQ2&amp;amp;hl=en"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-5314798189997607705?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/5314798189997607705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=5314798189997607705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/5314798189997607705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/5314798189997607705'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/04/gwt-xmlrpc.html' title='GWT XMLRPC'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-3151083214677818526</id><published>2011-04-01T03:31:00.000-07:00</published><updated>2011-04-01T03:31:07.495-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='Chart'/><category scheme='http://www.blogger.com/atom/ns#' term='GXT'/><title type='text'>GXT HighCharts</title><content type='html'>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:TrackMoves/&gt;   &lt;w:TrackFormatting/&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:DoNotPromoteQF/&gt;   &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:SplitPgBreakAndParaMark/&gt;    &lt;w:DontVertAlignCellWithSp/&gt;    &lt;w:DontBreakConstrainedForcedTables/&gt;    &lt;w:DontVertAlignInTxbx/&gt;    &lt;w:Word11KerningPairs/&gt;    &lt;w:CachedColBalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathPr&gt;    &lt;m:mathFont m:val="Cambria Math"/&gt;    &lt;m:brkBin m:val="before"/&gt;    &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;    &lt;m:smallFrac m:val="off"/&gt;    &lt;m:dispDef/&gt;    &lt;m:lMargin m:val="0"/&gt;    &lt;m:rMargin m:val="0"/&gt;    &lt;m:defJc m:val="centerGroup"/&gt;    &lt;m:wrapIndent m:val="1440"/&gt;    &lt;m:intLim m:val="subSup"/&gt;    &lt;m:naryLim m:val="undOvr"/&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"  DefSemiHidden="true" DefQFormat="false" DefPriority="99"  LatentStyleCount="267"&gt;   &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;   &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;   &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;   &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;   &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;   &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;   &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;   &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"   UnhideWhenUsed="false" Name="Table Grid"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;   &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;   &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;   &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;   &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;   &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"Times New Roman"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;}&lt;/style&gt; &lt;![endif]--&gt;  In my project, I had implement GXT chart. It works well on my system but my client wants to print the graph. Since the chart is in Flash, it can't be printed directly from the webpage. Actually I found an article to make it printable, but for it's not a good solution.&lt;br /&gt;&lt;br /&gt;I found several project for JavaScript chart, but I to make it work with GWT &amp;amp; GXT is big problem for me.&lt;br /&gt;Luckily, somebody has been working with Highchart (one of my candidate before) and give it a try.&lt;br /&gt;I just follow the sample, and it works.&lt;br /&gt;&lt;br /&gt;The project require jquery and highchart library.&lt;br /&gt;After this I will found out whether it is work without jQuery since I can do AJAX query using GWT.&lt;br /&gt;&lt;br /&gt;The project can found here:&amp;nbsp; &lt;br /&gt;&lt;a href="http://highcharts-gxt.sourceforge.net/wordpress/"&gt;http://highcharts-gxt.sourceforge.net/wordpress/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Highchart&lt;br /&gt;&lt;a href="http://www.highcharts.com/"&gt;http://www.highcharts.com/&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;I'm going to replace the existing chart. Hopefully, there is no big issues arise.&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-3151083214677818526?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/3151083214677818526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=3151083214677818526' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3151083214677818526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3151083214677818526'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/04/gxt-highcharts.html' title='GXT HighCharts'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-9076795624685173988</id><published>2011-03-31T23:50:00.000-07:00</published><updated>2011-09-14T03:15:17.807-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT Google Map (Static and Dynamic)</title><content type='html'>In my project, my client want to use Google map.&lt;br /&gt;I had put the Google Map V3 but due to poor internet connection, the retrieval time is very slow. They want to use static map.&lt;br /&gt;&lt;br /&gt;I decide to create an option for them to choose whether to use dynamic or static Google map. To change between dynamic and static just simply change the instance.&lt;br /&gt;&lt;br /&gt;The dynamic map, I use a library from&lt;a href="http://code.google.com/p/gwt-google-maps-v3/"&gt; http://code.google.com/p/gwt-google-maps-v3/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SitemapPanel.java&lt;br /&gt;&lt;pre style="background-color: black; border: 1px dashed rgb(153, 153, 153); color: white; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;package com.vcari.jscadav2.client;&lt;br /&gt;&lt;br /&gt;import com.extjs.gxt.ui.client.widget.LayoutContainer;&lt;br /&gt;import com.google.gwt.user.client.Element;&lt;br /&gt;&lt;br /&gt;public abstract class SiteMapPanel extends LayoutContainer{&lt;br /&gt;&lt;br /&gt;    @Override&lt;br /&gt;    protected void onRender(Element parent, int index) {&lt;br /&gt;        super.onRender(parent, index);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;     public abstract void setMapCenter(Double latitude, Double longitude, int zoomLevel);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;SiteMapStaticMapPanel.java (Static Map)&lt;br /&gt;This solution is working for GWT 2.4. Please refer to my new post below for solution. &lt;a href="http://peyotest.blogspot.com/2011/09/gwt-24-static-google-map-in-frame-not.html"&gt;http://peyotest.blogspot.com/2011/09/gwt-24-static-google-map-in-frame-not.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: black; border: 1px dashed rgb(153, 153, 153); color: white; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;package com.vcari.jscadav2.client;&lt;br /&gt;&lt;br /&gt;import com.extjs.gxt.ui.client.widget.layout.FitLayout;&lt;br /&gt;import com.google.gwt.user.client.Element;&lt;br /&gt;import com.google.gwt.user.client.ui.Frame;&lt;br /&gt;&lt;br /&gt;public class SiteMapStaticMapPanel extends SiteMapPanel {&lt;br /&gt;&lt;br /&gt;    public SiteMapStaticMapPanel(){&lt;br /&gt;        super();&lt;br /&gt;    }    &lt;br /&gt;    &lt;br /&gt;    Frame frame = new Frame();&lt;br /&gt;&lt;br /&gt;    @Override&lt;br /&gt;    protected void onRender(Element parent, int index) {&lt;br /&gt;        super.onRender(parent, index);&lt;br /&gt;        setLayout(new FitLayout());&lt;br /&gt;        setBorders(false);&lt;br /&gt;        add(frame);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    /**&lt;br /&gt;     * Set map center to the defined latitude and longitude&lt;br /&gt;     * @param latitude&lt;br /&gt;     * @param longitude&lt;br /&gt;     */&lt;br /&gt;    public void setMapCenter(Double latitude, Double longitude, int zoomLevel) {                &lt;br /&gt;       Integer width=this.getWidth();&lt;br /&gt;       Integer height=this.getHeight();&lt;br /&gt;       String url="http://maps.google.com/maps/api/staticmap?center={0},{1}&amp;amp;zoom={2}&amp;amp;size={3}x{4}&amp;amp;maptype=roadmap&amp;amp;sensor=false";&lt;br /&gt;       url+="&amp;amp;markers=color:red7C%{0},{1}";&lt;br /&gt;       url=String.format(url, latitude,longitude,zoomLevel,width,height);&lt;br /&gt;       url=url.replace("{0}", latitude.toString());&lt;br /&gt;       url=url.replace("{1}", longitude.toString());&lt;br /&gt;       url=url.replace("{2}", String.valueOf(zoomLevel));&lt;br /&gt;       url=url.replace("{3}", width.toString());&lt;br /&gt;       url=url.replace("{4}", height.toString());&lt;br /&gt;       url=url.replace("{5}",  Application.areaName);&lt;br /&gt;      &lt;br /&gt;       frame.setUrl(url);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Dynamics Google Map Version 3&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: black; border: 1px dashed rgb(153, 153, 153); color: white; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;/*&lt;br /&gt; * To change this template, choose Tools | Templates&lt;br /&gt; * and open the template in the editor.&lt;br /&gt; */&lt;br /&gt;package com.vcari.jscadav2.client;&lt;br /&gt;&lt;br /&gt;import com.extjs.gxt.ui.client.widget.layout.FitLayout;&lt;br /&gt;import com.google.gwt.maps.client.MapOptions;&lt;br /&gt;import com.google.gwt.maps.client.MapTypeId;&lt;br /&gt;import com.google.gwt.maps.client.MapWidget;&lt;br /&gt;import com.google.gwt.maps.client.base.LatLng;&lt;br /&gt;import com.google.gwt.maps.client.overlay.Marker;&lt;br /&gt;import com.google.gwt.user.client.Element;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author peyo&lt;br /&gt; */&lt;br /&gt;public class SiteMapV3Panel extends SiteMapPanel {&lt;br /&gt;&lt;br /&gt;    private Marker marker;&lt;br /&gt;    private MapWidget mapWidget;&lt;br /&gt;&lt;br /&gt;    public SiteMapV3Panel() {&lt;br /&gt;        setLayout(new FitLayout());&lt;br /&gt;                      &lt;br /&gt;        final MapOptions options = new MapOptions();&lt;br /&gt;        // Zoom level. Required&lt;br /&gt;        options.setZoom(8);&lt;br /&gt;        // Open a map centered on Cawker City, KS USA. Required&lt;br /&gt;        options.setCenter(new LatLng(5.519216, 116.822204));&lt;br /&gt;        // Map type. Required.&lt;br /&gt;        options.setMapTypeId(new MapTypeId().getRoadmap());&lt;br /&gt;&lt;br /&gt;        marker=new Marker();&lt;br /&gt;        &lt;br /&gt;        // Enable maps drag feature. Disabled by default.&lt;br /&gt;        options.setDraggable(true);&lt;br /&gt;        // Enable and add default navigation control. Disabled by default.&lt;br /&gt;        options.setNavigationControl(true);&lt;br /&gt;        // Enable and add map type control. Disabled by default.&lt;br /&gt;        options.setMapTypeControl(true);&lt;br /&gt;        mapWidget = new MapWidget(options);&lt;br /&gt;        mapWidget.setSize("800px", "600px");&lt;br /&gt;        add(mapWidget);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;   &lt;br /&gt;    @Override&lt;br /&gt;    protected void onRender(Element parent, int index) {&lt;br /&gt;        super.onRender(parent, index);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Set map center to the defined latitude and longitude&lt;br /&gt;     * @param latitude&lt;br /&gt;     * @param longitude&lt;br /&gt;     */&lt;br /&gt;    public void setMapCenter(Double latitude, Double longitude, int zoomLevel) {                &lt;br /&gt;        mapWidget.getMap().setZoom(zoomLevel);&lt;br /&gt;        mapWidget.getMap().panTo(new LatLng(latitude, longitude));&lt;br /&gt;        marker.setPosition(new LatLng(latitude, longitude));&lt;br /&gt;        marker.setMap(mapWidget.getMap());&lt;br /&gt;        marker.setTitle(Application.areaName);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-9076795624685173988?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/9076795624685173988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=9076795624685173988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/9076795624685173988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/9076795624685173988'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/03/gwt-google-map-static-and-dynamic.html' title='GWT Google Map (Static and Dynamic)'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-4059322089338834278</id><published>2011-03-10T02:24:00.000-08:00</published><updated>2011-03-10T02:25:23.477-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Lighttpd'/><title type='text'>PHP Fatal error:  date(): Timezone database is corrupt - this should *never* happen!</title><content type='html'>When I tried to execute a script that using date function on my Vortex, i got this error message. &lt;br /&gt;&lt;br /&gt;"PHP Fatal error:  date(): Timezone database is corrupt - this should *never* happen!".&lt;br /&gt;&lt;br /&gt;Actually, this happened a long time ago, but only today I gave my efficient time tried to solve this problem. Luckily,I found the solution with just a few minutes.&lt;br /&gt;&lt;br /&gt;Solution :&lt;br /&gt;&lt;br /&gt;Make sure that web server(I'm using lighttpd on vortex) has enough access to read&lt;br /&gt;/etc/localtime&lt;br /&gt;/usr/share/zoneinfo&lt;br /&gt;&lt;br /&gt;if localtime is not exist, you can copy the file from any Linux system.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-4059322089338834278?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/4059322089338834278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=4059322089338834278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4059322089338834278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4059322089338834278'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/03/php-fatal-error-date-timezone-database.html' title='PHP Fatal error:  date(): Timezone database is corrupt - this should *never* happen!'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-8561919943709668632</id><published>2011-03-07T15:20:00.000-08:00</published><updated>2011-03-07T15:28:17.805-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GXT'/><title type='text'>GXT Remote Paging With GWT RPC</title><content type='html'>This code example shows how to make GXT grid with remote paging to work with GWT RPC.That's means you can use POST to send the request. I'm not sure whether it can be done before.&lt;br /&gt;&lt;br /&gt;To do that,we need just need to use RpcProxy and override the load method.&lt;br /&gt;&lt;br /&gt;Anyway, I put the sample code below. &lt;br /&gt;I take it from GXT demo code.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #ffffff; background-color: #000000;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;final ExampleServiceAsync service = (ExampleServiceAsync) Registry.get(Examples.SERVICE);&lt;br /&gt;RpcProxy&amp;lt;PagingLoadResult&amp;lt;Post&amp;gt;&amp;gt; proxy = new RpcProxy&amp;lt;PagingLoadResult&amp;lt;Post&amp;gt;&amp;gt;() {&lt;br /&gt;&lt;br /&gt;    @Override&lt;br /&gt;    public void load(Object loadConfig, AsyncCallback&amp;lt;PagingLoadResult&amp;lt;Post&amp;gt;&amp;gt; callback) {&lt;br /&gt;        service.getPosts((PagingLoadConfig) loadConfig, callback);&lt;br /&gt;    }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;// loader  &lt;br /&gt;final PagingLoader&amp;lt;PagingLoadResult&amp;lt;ModelData&amp;gt;&amp;gt; loader = new BasePagingLoader&amp;lt;PagingLoadResult&amp;lt;ModelData&amp;gt;&amp;gt;(proxy);&lt;br /&gt;loader.setRemoteSort(true);&lt;br /&gt;ListStore&amp;lt;Post&amp;gt; store = new ListStore&amp;lt;Post&amp;gt;(loader);&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-8561919943709668632?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/8561919943709668632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=8561919943709668632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8561919943709668632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8561919943709668632'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/03/gxt-remote-paging-with-gwt-rpc.html' title='GXT Remote Paging With GWT RPC'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-2537597411368922260</id><published>2011-03-07T15:00:00.000-08:00</published><updated>2011-03-07T15:00:24.694-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GXT'/><title type='text'>GXT ModelData Cloning</title><content type='html'>It's easy to clone a GXT ModelData.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #ffffff; background-color: #000000;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt; public static void cloneModelData(ModelData source, ModelData dest) {&lt;br /&gt;        Iterator&amp;lt;String&amp;gt; iterator = source.getPropertyNames().iterator();&lt;br /&gt;        while (iterator.hasNext()) {&lt;br /&gt;            String key = iterator.next();&lt;br /&gt;            dest.set(key, source.get(key));&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-2537597411368922260?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/2537597411368922260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=2537597411368922260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/2537597411368922260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/2537597411368922260'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/03/gxt-modeldata-cloning.html' title='GXT ModelData Cloning'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-3369368331665161477</id><published>2011-03-05T15:45:00.000-08:00</published><updated>2011-03-05T15:47:43.158-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='XMLRPC'/><title type='text'>PHP XML-RPC Client Simplified</title><content type='html'>In my previous for XML-RPC client helper, I suggested to create a client instance to make your methods exposed and developer friendly. But may be some of us are too lazy write all the wrapper code. There is solution for that.&lt;br /&gt;&lt;br /&gt;In this case you still need to create client instance which extends XMLRPCClientHelper, but this time you don't need to write all the wrapper code. Just simply add __call overload methods.&lt;br /&gt;&lt;br /&gt;It's easy but you need to remember the service API.&lt;br /&gt;&lt;br /&gt;Here is the code:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #ffffff; background-color: #000000;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&amp;lt;?php&lt;br /&gt;class TestXMLRPCClientSimplified extends XMLRPCClientHelper {&lt;br /&gt;    public function __call($name, $arguments) {&lt;br /&gt;        return $this-&amp;gt;sendRequest(&amp;quot;$name&amp;quot;, $arguments);&lt;br /&gt;    }    &lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-3369368331665161477?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/3369368331665161477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=3369368331665161477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3369368331665161477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3369368331665161477'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/03/php-xml-rpc-client-simplied.html' title='PHP XML-RPC Client Simplified'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-3861812415294558713</id><published>2011-03-04T13:28:00.000-08:00</published><updated>2011-03-05T15:45:49.821-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='XMLRPC'/><title type='text'>PHP XML-RPC Client Helper</title><content type='html'>I wrote a helper for XMLRPC client.&lt;br /&gt;I also added the automatic base64 type setting for bytes data.&lt;br /&gt;Just need to create the client instance and supply the service URL, then you can start to call the service. &lt;br /&gt;&lt;br /&gt;To make you client methods is expose and developer friendly, you can create your own client class which extends XMLRPCClientHelper.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: black; border: 1px dashed rgb(153, 153, 153); color: white; font-size: 10px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&amp;lt;?php&lt;br /&gt;class TestXMLRPCClient extends XMLRPCClientHelper {&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Add two number&lt;br /&gt;     * @param &amp;lt;int&amp;gt; $A&lt;br /&gt;     * @param &amp;lt;int&amp;gt; $B&lt;br /&gt;     * @return &amp;lt;int&amp;gt;&lt;br /&gt;     */&lt;br /&gt;    public function add($A, $B) {&lt;br /&gt;        $params = array($A, $B);&lt;br /&gt;        return $this-&amp;gt;sendRequest(&amp;quot;add&amp;quot;, $params);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Here is the simple example :&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: black; border: 1px dashed rgb(153, 153, 153); color: white; font-size: 10px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;$url = &amp;quot;http://192.168.56.1:5678/service.rem&amp;quot;;&lt;br /&gt;$client = new TestXMLRPCClient();&lt;br /&gt;$client-&amp;gt;setURL($url);&lt;br /&gt;$result=$client-&amp;gt;add(1,4);  //test add&lt;br /&gt;print &amp;quot;Add Result: $result &amp;lt;br&amp;gt;\n&amp;quot;;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;It also support the exception when there is any error occurs it will throw the exception.So you just need to use try and catch to handle that.&lt;br /&gt;&lt;br /&gt;XMLRPCClientHelper.php. This file also included in my training materials on my &lt;a href="http://peyotest.blogspot.com/2011/03/xmlrpc-training-c-and-php.html"&gt;previous post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: black; border: 1px dashed rgb(153, 153, 153); color: white; font-size: 10px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * This helper class help to create a simple XML-RPC client&lt;br /&gt; * @author Mohamad Fairol Zamzuri B Che Sayut &amp;lt;mfz_peyo@yahoo.com&amp;gt;&lt;br /&gt; */&lt;br /&gt;class XMLRPCClientHelper {&lt;br /&gt;&lt;br /&gt;    private $url;&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Get URL&lt;br /&gt;     */&lt;br /&gt;    public function getURL() {&lt;br /&gt;        return $this-&amp;gt;url;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Set URL&lt;br /&gt;     * @param &amp;lt;string&amp;gt; $url URL&lt;br /&gt;     */&lt;br /&gt;    public function setURL($url) {&lt;br /&gt;        $this-&amp;gt;url = $url;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Send RPC request&lt;br /&gt;     * @param &amp;lt;string&amp;gt; $methodname method name&lt;br /&gt;     * @param &amp;lt;array&amp;gt; $parameters parameters&lt;br /&gt;     */&lt;br /&gt;    public function sendRequest($methodname, $parameters) {&lt;br /&gt;        for ($i = 0; $i &amp;lt; count($parameters); $i++) {&lt;br /&gt;            if (mb_detect_encoding($parameters[$i]) === false) {&lt;br /&gt;                xmlrpc_set_type(&amp;amp;$parameters[$i], "base64");&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        $request = xmlrpc_encode_request($methodname, $parameters);&lt;br /&gt;        $context = stream_context_create(array('http' =&amp;gt; array(&lt;br /&gt;                        'method' =&amp;gt; "POST",&lt;br /&gt;                        'header' =&amp;gt; "Content-Type: text/xml",&lt;br /&gt;                        'content' =&amp;gt; $request&lt;br /&gt;                        )));&lt;br /&gt;        $file = file_get_contents($this-&amp;gt;url, false, $context);&lt;br /&gt;        $response = xmlrpc_decode($file);&lt;br /&gt;        if (is_array($response) &amp;amp;&amp;amp; xmlrpc_is_fault($response)) {&lt;br /&gt;            throw new Exception($response['faultString'], $response['faultCode']);&lt;br /&gt;        }&lt;br /&gt;        return $response;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-3861812415294558713?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/3861812415294558713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=3861812415294558713' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3861812415294558713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3861812415294558713'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/03/php-xml-rpc-client-helper.html' title='PHP XML-RPC Client Helper'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-6910185821635944262</id><published>2011-03-04T13:05:00.000-08:00</published><updated>2011-03-05T15:31:01.032-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='XMLRPC'/><title type='text'>PHP XML-RPC Server Helper</title><content type='html'>I wrote a XMLRPCServerHelper to help me to create XML-RPC service in PHP.&lt;br /&gt;It's easy to use and you just need to set the classname of service and all the methods will be extracted automatically using ReflectionClass.&lt;br /&gt;&lt;br /&gt;The example of the server :&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: black; border: 1px dashed rgb(153, 153, 153); color: white; font-size: 10px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&amp;lt;?php&lt;br /&gt;error_reporting(E_ERROR &amp;#124; E_PARSE);&lt;br /&gt;require_once(&amp;quot;autoload.php&amp;quot;);&lt;br /&gt;&lt;br /&gt;$server = new XMLRPCServerHelper();&lt;br /&gt;$server-&amp;gt;setClassName(&amp;quot;TestXMLRPCService&amp;quot;);&lt;br /&gt;$answer = $server-&amp;gt;handle();&lt;br /&gt;header('Content-Type: text/xml');&lt;br /&gt;print($answer);&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The service can be access from your normal webserver url.&lt;br /&gt;To generate php client class, just simply add ?phpwrapper to the url. E.g : &lt;br /&gt;&lt;br /&gt;&amp;nbsp;http://localhost/xmlrpc/server.php?phpwrapper&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;XMLRPCServerHelper.php . This file also incuded in my training materials on my&lt;a href="http://peyotest.blogspot.com/2011/03/xmlrpc-training-c-and-php.html"&gt; previous post.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: black; border: 1px dashed rgb(153, 153, 153); color: white; font-size: 10px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * This helper class help to create XML-RPC server&lt;br /&gt; */&lt;br /&gt;class XMLRPCServerHelper {&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Server handler holder&lt;br /&gt;     * @var &amp;lt;Object&amp;gt; Server handler holder&lt;br /&gt;     */&lt;br /&gt;    private $serverHandler;&lt;br /&gt;    /**&lt;br /&gt;     * Class name holder&lt;br /&gt;     * @var &amp;lt;string&amp;gt; Class name holder&lt;br /&gt;     */&lt;br /&gt;    private $classname;&lt;br /&gt;    /**&lt;br /&gt;     * External function list holder&lt;br /&gt;     * @var &amp;lt;array&amp;gt;  External function list holder&lt;br /&gt;     */&lt;br /&gt;    private $externalFunctions;&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Contructor&lt;br /&gt;     */&lt;br /&gt;    public function __construct() {&lt;br /&gt;        $this-&amp;gt;serverHandler = xmlrpc_server_create();&lt;br /&gt;        $this-&amp;gt;externalFunctions = array();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Set object class.&lt;br /&gt;     * All class methods will be extracted and registerd automatically&lt;br /&gt;     * @param &amp;lt;Object&amp;gt; $class&lt;br /&gt;     */&lt;br /&gt;    public function setClassName($classname) {&lt;br /&gt;        $this-&amp;gt;classname = $classname;&lt;br /&gt;        $reflection = new ReflectionClass($classname);&lt;br /&gt;        $methods = $reflection-&amp;gt;getMethods();&lt;br /&gt;        $props = $reflection-&amp;gt;getProperties(ReflectionProperty::IS_PUBLIC &amp;#124; ReflectionProperty::IS_PROTECTED);&lt;br /&gt;        for ($i = 0; $i &amp;lt; count($methods); $i++) {&lt;br /&gt;            $reflectmethod = $methods[$i];&lt;br /&gt;            $methodname = $reflectmethod-&amp;gt;name;&lt;br /&gt;            $reflectparams = $reflectmethod-&amp;gt;getParameters();&lt;br /&gt;            if (count($reflectparams) &amp;gt; 0) {&lt;br /&gt;                for ($j = 0; $j &amp;lt; count($reflectparams); $j++) {&lt;br /&gt;                    $methodparams[] = $reflectparams[$j]-&amp;gt;name;&lt;br /&gt;                }&lt;br /&gt;            } else {&lt;br /&gt;                $methodparams = array();&lt;br /&gt;            }&lt;br /&gt;            $this-&amp;gt;registerMethod($methodname, array(&amp;amp;$classname, $methodname), $methodparams);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Generate client wrapper&lt;br /&gt;     */&lt;br /&gt;    private function generatePHPClientWrapper() {&lt;br /&gt;        $classfunctions = &amp;quot;&amp;quot;;&lt;br /&gt;        $reflection = new ReflectionClass($this-&amp;gt;classname);&lt;br /&gt;        $methods = $reflection-&amp;gt;getMethods();&lt;br /&gt;        $props = $reflection-&amp;gt;getProperties(ReflectionProperty::IS_PUBLIC &amp;#124; ReflectionProperty::IS_PROTECTED);&lt;br /&gt;        for ($i = 0; $i &amp;lt; count($methods); $i++) {&lt;br /&gt;            $reflectmethod = $methods[$i];&lt;br /&gt;            $methodname = $reflectmethod-&amp;gt;name;&lt;br /&gt;            $reflectparams = $reflectmethod-&amp;gt;getParameters();&lt;br /&gt;            $funcParams = &amp;quot;&amp;quot;;&lt;br /&gt;            $funcContent = &amp;quot;&amp;quot;;&lt;br /&gt;            if (count($reflectparams) &amp;gt; 0) {&lt;br /&gt;                for ($j = 0; $j &amp;lt; count($reflectparams); $j++) {&lt;br /&gt;                    //$funcContent.= &amp;quot;\$params[] = \$&amp;quot; . $reflectparams[$j]-&amp;gt;name . &amp;quot;;\n&amp;quot;;&lt;br /&gt;                    if ($funcParams != &amp;quot;&amp;quot;) {&lt;br /&gt;                        $funcParams.=&amp;quot;,&amp;quot;;&lt;br /&gt;                    }&lt;br /&gt;                    $funcParams.='$' . $reflectparams[$j]-&amp;gt;name;&lt;br /&gt;                }&lt;br /&gt;                $funcContent = &amp;quot;\$params = array($funcParams);\n&amp;quot;;&lt;br /&gt;            } else {&lt;br /&gt;                $funcContent = &amp;quot;\$params = array();\n&amp;quot;;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            $classfunctions.=&amp;quot;public function $methodname($funcParams) {\n&amp;quot;;&lt;br /&gt;            $classfunctions.=$funcContent;&lt;br /&gt;            $classfunctions.=&amp;quot;return \$this-&amp;gt;sendRequest(\&amp;quot;$methodname\&amp;quot;, \$params);\n&amp;quot;;&lt;br /&gt;            $classfunctions.=&amp;quot;}\n\n&amp;quot;;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        $wrapper = &amp;quot;&amp;lt;pre&amp;gt;class &amp;quot; . $this-&amp;gt;classname . &amp;quot;XMLRPCClient extends XMLRPCClientHelper {\n&amp;quot;;&lt;br /&gt;        $wrapper .= &amp;quot;$classfunctions&amp;quot;;&lt;br /&gt;        $wrapper .= &amp;quot;}\n&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;        return $wrapper;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Register method&lt;br /&gt;     * @param &amp;lt;string&amp;gt; $externalName class name&lt;br /&gt;     * @param &amp;lt;Object&amp;gt; $function class pointer&lt;br /&gt;     * @param &amp;lt;array&amp;gt; $parameterNames parameters name&lt;br /&gt;     */&lt;br /&gt;    public function registerMethod($externalName, $function, $parameterNames) {&lt;br /&gt;        if ($function == null) {&lt;br /&gt;            $function = $externalName;&lt;br /&gt;        }&lt;br /&gt;        xmlrpc_server_register_method($this-&amp;gt;serverHandler, $externalName, array(&amp;amp;$this, 'callMethod'));&lt;br /&gt;        $this-&amp;gt;externalFunctions[$externalName] = array('function' =&amp;gt; $function, 'parameterNames' =&amp;gt; $parameterNames);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Invoke class method&lt;br /&gt;     * @param &amp;lt;string&amp;gt; $functionName method name&lt;br /&gt;     * @param &amp;lt;array&amp;gt; $parametersFromRequest parameters&lt;br /&gt;     * @return &amp;lt;variant&amp;gt; function call result&lt;br /&gt;     */&lt;br /&gt;    public function callMethod($functionName, $parametersFromRequest) {&lt;br /&gt;        if ($functionName == &amp;quot;generatePHPClientWrapper&amp;quot;) {&lt;br /&gt;            return $this-&amp;gt;generatePHPClientWrapper();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        $function = $this-&amp;gt;externalFunctions[$functionName]['function'];&lt;br /&gt;        $parameterNames = $this-&amp;gt;externalFunctions[$functionName]['parameterNames'];&lt;br /&gt;        return call_user_func_array($function, $parametersFromRequest);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Handle server call&lt;br /&gt;     * @return &amp;lt;variant&amp;gt;  function call result&lt;br /&gt;     */&lt;br /&gt;    public function handle() {&lt;br /&gt;        $bWrapper = false;&lt;br /&gt;        foreach ($_GET as $key =&amp;gt; $value) {&lt;br /&gt;            if ($key == &amp;quot;phpwrapper&amp;quot;) {&lt;br /&gt;                $bWrapper = true;&lt;br /&gt;                continue;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        if ($bWrapper) {&lt;br /&gt;            print $this-&amp;gt;generatePHPClientWrapper();&lt;br /&gt;            exit();&lt;br /&gt;        }&lt;br /&gt;        return xmlrpc_server_call_method($this-&amp;gt;serverHandler, file_get_contents('php://input'), null);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-6910185821635944262?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/6910185821635944262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=6910185821635944262' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6910185821635944262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6910185821635944262'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/03/php-xml-rpc-server-helper.html' title='PHP XML-RPC Server Helper'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-2832779988281388285</id><published>2011-03-04T12:45:00.000-08:00</published><updated>2011-03-04T12:48:23.315-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='XMLRPC'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>XMLRPC Training (C# and PHP)</title><content type='html'>Today, I'm going to conduct a simple training on XML-RPC at my previous company.&lt;br /&gt;You can access to the training materials on my googleDocs.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0B03hZTEkph8tNDg3MmFjZjgtOWI1Yy00NWEwLThkZGMtZTM4N2FiMTQ3ODQ0&amp;amp;hl=en"&gt;Presentation Slide&lt;/a&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0B03hZTEkph8tZDE4ODI1MjQtMGI4My00OTRhLWJmNDMtMjdjNWE3YWFmZjY4&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;PHP source code&lt;/a&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0B03hZTEkph8tYTEyNWU5MTYtNjIyYy00MTBjLWI2N2ItNTZjYmRiYjZmOWJh&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;C# source code&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-2832779988281388285?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/2832779988281388285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=2832779988281388285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/2832779988281388285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/2832779988281388285'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/03/xmlrpc-training-c-and-php.html' title='XMLRPC Training (C# and PHP)'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-4263112982568131179</id><published>2011-02-22T18:03:00.000-08:00</published><updated>2011-03-05T15:34:31.467-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>PHP Simple Auto Load</title><content type='html'>Just wanna share my PHP autoload function.&lt;br /&gt;In my application, I have several types of classes and may located in different folder such as :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Helper&lt;/li&gt;&lt;li&gt;Model&lt;/li&gt;&lt;li&gt;Component&lt;/li&gt;&lt;li&gt;Web Service&lt;/li&gt;&lt;li&gt;etc&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The easiest way to use the classes is to create an auto load function so the classes file will be included automatically.&lt;br /&gt;&lt;br /&gt;Hope this could be useful to you too.&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); color: white; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&amp;lt;?php&lt;br /&gt;/**&lt;br /&gt; * Auto function&lt;br /&gt; * @param &amp;lt;string&amp;gt; $classname class name&lt;br /&gt; * @return &amp;lt;void&amp;gt; void&lt;br /&gt; */&lt;br /&gt;function __autoload($classname) {&lt;br /&gt;    global $global_helper_path;&lt;br /&gt;    global $global_model_path;&lt;br /&gt;    global $global_component_path;&lt;br /&gt;    global $global_wsobject_path;&lt;br /&gt;&lt;br /&gt;    //load helper&lt;br /&gt;    $pos = strrpos($classname, "Helper");&lt;br /&gt;    if ($pos === false) { // note: three equal signs&lt;br /&gt;    } else {&lt;br /&gt;        //print $classname;&lt;br /&gt;        $filepath = "$global_helper_path/$classname.php";&lt;br /&gt;        require_once "$filepath";&lt;br /&gt;        return;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    // load component&lt;br /&gt;    $pos = strrpos($classname, "com_");&lt;br /&gt;    if ($pos === false) { // note: three equal signs&lt;br /&gt;    } elseif ($pos == 0) {&lt;br /&gt;        $filepath = "$global_component_path/$classname/$classname.php";&lt;br /&gt;        require_once "$filepath";&lt;br /&gt;        return;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    // load database driver&lt;br /&gt;    $pos = strrpos($classname, "DB");&lt;br /&gt;    if ($pos === false) { // note: three equal signs&lt;br /&gt;    } elseif ($pos == 0) {&lt;br /&gt;        $filepath = "$global_helper_path/database/$classname.php";&lt;br /&gt;        require_once "$filepath";&lt;br /&gt;        return;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    // load model&lt;br /&gt;    $pos = strrpos($classname, "Model");&lt;br /&gt;    if ($pos === false) { // note: three equal signs&lt;br /&gt;    } else {&lt;br /&gt;        $filepath = "$global_model_path/$classname.php";&lt;br /&gt;        require_once "$filepath";&lt;br /&gt;        return;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    // load webservice class&lt;br /&gt;    $pos = strrpos($classname, "WS");&lt;br /&gt;    if ($pos === false) { // note: three equal signs&lt;br /&gt;    } elseif ($pos == 0) {&lt;br /&gt;        $filepath = "$global_wsobject_path/$classname.php";&lt;br /&gt;        require_once "$filepath";&lt;br /&gt;        return;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-4263112982568131179?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/4263112982568131179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=4263112982568131179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4263112982568131179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4263112982568131179'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/02/php-simple-auto-load.html' title='PHP Simple Auto Load'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-3054807315576510250</id><published>2011-02-22T16:40:00.000-08:00</published><updated>2011-02-28T02:09:44.141-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Web service'/><title type='text'>PHP Web Service Library</title><content type='html'>I gave a look on my PHP web service  class. It's quite hard to extends and create a new web service application. I search on Google and found several open source projects and gave them a test.&lt;br /&gt;&lt;br /&gt;I found "php-webservice-class" is the best since the implementation is simple,easy and fully commented. It also use ReflectionClass, makes the code simpler without need to create phpDoc parser to get your parameter settings.&lt;br /&gt;&lt;br /&gt;The project url:&lt;br /&gt;&lt;a href="http://code.google.com/p/php-webservice-class/"&gt;http://code.google.com/p/php-webservice-class/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Update on 28th Feb 2011&lt;br /&gt;&lt;br /&gt;The wsdl output is not standard. :(&lt;br /&gt;You can't call the web service from other language.&lt;br /&gt;I'm considering to use David Kingma library (my old library also based on his work) for replacement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-3054807315576510250?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/3054807315576510250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=3054807315576510250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3054807315576510250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3054807315576510250'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2011/02/php-web-service-library.html' title='PHP Web Service Library'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-1656993816138804684</id><published>2010-12-01T16:05:00.000-08:00</published><updated>2010-12-01T16:23:16.910-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='GXT'/><title type='text'>GXT Paging Toolbar Disabled</title><content type='html'>The paging toolbar keep disabled when it loads data and a new request is made before the last request accomplished. My temporary solution is to use flag to avoid request the same data several time concurrently. But what about, the data is different ????&lt;br /&gt;&lt;br /&gt;Finally I found the solution after read the post in GXT forum.  You can find it here.&lt;br /&gt;&lt;a href="http://www.sencha.com/forum/showthread.php?85011-Loading-Store-twice-causes-PagingToolBar-to-disable"&gt;http://www.sencha.com/forum/showthread.php?85011-Loading-Store-twice-causes-PagingToolBar-to-disable&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But in my solution, I just use override the loader LoadListener events. The concept is to disable paging toolbar on data load  and enable it on load completed.&lt;br /&gt;&lt;br /&gt;Code:&lt;br /&gt;grid.getStore().getLoader().addLoadListener(new LoadListener() {&lt;br /&gt;&lt;br /&gt;        @Override&lt;br /&gt;        public void loaderBeforeLoad(LoadEvent le) {&lt;br /&gt;            getPanel().getBottomComponent().setEnabled(false);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        @Override&lt;br /&gt;        public void loaderLoad(LoadEvent le) {&lt;br /&gt;            getPanel().getBottomComponent().setEnabled(true);&lt;br /&gt;            super.loaderLoad(le);&lt;br /&gt;        }&lt;br /&gt;    });&lt;br /&gt;&lt;br /&gt;Hope this code is useful to you too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-1656993816138804684?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/1656993816138804684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=1656993816138804684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/1656993816138804684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/1656993816138804684'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2010/12/gxt-paging-grid-disabled.html' title='GXT Paging Toolbar Disabled'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-3590471356251000611</id><published>2010-10-29T03:42:00.000-07:00</published><updated>2010-10-29T04:27:45.216-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GXT'/><title type='text'>GXT JsonReader without model type fields</title><content type='html'>In GXT, to convert JSON to ModelData we need to declare the model type fields for each variable to be converted into model data. As the data changed, you need to change the model type fields or you will get the null pointer exception. So I want to create a JSON reader that can read json string and convert to model data without need specify the fields.&lt;br /&gt;&lt;br /&gt;To do that I need to create a custom JsonReader, JsonPagingLoadResultReader and  JsonLoadResultReader.&lt;br /&gt;&lt;br /&gt;The can be downloaded here :&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0B03hZTEkph8tYWM0YzcwNzctMmFjMi00MWVlLWE4NjQtMjhkNzM4NTQ4ZWUz&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;&lt;br /&gt;MyJsonReader.java&lt;/a&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0B03hZTEkph8tNzFkMDEwNzAtM2Q5MS00OWNiLWExMDYtMjY2ZDlkNTk4NDAy&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;MyJsonPagingLoadResultReader.java&lt;/a&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0B03hZTEkph8tZjQzNmIyNjktNTdlNy00ZTU2LWJkMzEtNzdmNzZjYmU2ZWMx&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;MyJsonLoadResultReader.java&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-3590471356251000611?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/3590471356251000611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=3590471356251000611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3590471356251000611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3590471356251000611'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2010/10/gxt-jsonreader-without-model-type.html' title='GXT JsonReader without model type fields'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-5591670435149513907</id><published>2010-10-17T17:07:00.000-07:00</published><updated>2010-10-17T17:16:53.936-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GXT'/><title type='text'>Change background color in GXT grid column</title><content type='html'>&lt;pre class="bbcode_code" style="height: 108px;"&gt;column.setRenderer(new GridCellRenderer&lt;stock&gt;() {&lt;br /&gt;    public String render(Stock model, String property, ColumnData config, int rowIndex,&lt;br /&gt;        int colIndex, ListStore&lt;stock&gt; store) {&lt;br /&gt;      config.style = "background-color: silver;";&lt;br /&gt;      return model.get(property);&lt;br /&gt;    }&lt;br /&gt;  });&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Source:&lt;a href="http://www.sencha.com/forum/showthread.php?49510-Change-background-color-in-GXT-grid-column"&gt;http://www.sencha.com/forum/showthread.php?49510-Change-background-color-in-GXT-grid-column&lt;/a&gt;&lt;br /&gt;&lt;/stock&gt;&lt;/stock&gt;&lt;/pre&gt;&lt;stock&gt;&lt;stock&gt;&lt;/stock&gt;&lt;/stock&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-5591670435149513907?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/5591670435149513907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=5591670435149513907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/5591670435149513907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/5591670435149513907'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2010/10/change-background-color-in-gxt-grid.html' title='Change background color in GXT grid column'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-1699725660685120439</id><published>2010-09-20T16:44:00.000-07:00</published><updated>2010-09-20T17:16:59.845-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><title type='text'>Apache Compression</title><content type='html'>Actually, when I worked out with GWT Code Splitting, I still not satisfied with the result.&lt;br /&gt;I know the web browser support content compression so a gave it a look.I chose to use the most simple solution, Apache compression. I just need to set .htaccess configuration and copy to your web folder.&lt;br /&gt;&lt;br /&gt;Steps :&lt;br /&gt;&lt;br /&gt;1. Enable Apache mod_deflate. mod_gzip is better but I don't have the extension. Open Apache configuration file and turn on the settings.&lt;br /&gt;&lt;br /&gt;LoadModule deflate_module modules/mod_deflate.so&lt;br /&gt;&lt;br /&gt;2.  Create .htaccess file and paste these configuration. I want to compress all files with js, css, html, htm and php extensions.&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&amp;lt;FilesMatch &lt;span class="str"&gt;"(?i)^.*\.(js|css|html|htm|php)$"&lt;/span&gt;&amp;gt;&lt;br /&gt;SetOutputFilter DEFLATE&lt;br /&gt;&amp;lt;/FilesMatch&amp;gt;&lt;/pre&gt;&lt;br /&gt;3. Restart Apache. Done.&lt;br /&gt;&lt;br /&gt;Try to open your web and use firebug to see your file downloads.&lt;br /&gt;I was successfully, reduce the file download from 600Kb (After GWT code splitting) to 250Kb. So the total I saved around 800Kb and speed up my system.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-1699725660685120439?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/1699725660685120439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=1699725660685120439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/1699725660685120439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/1699725660685120439'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2010/09/apache-compression.html' title='Apache Compression'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-412365334224634459</id><published>2010-09-20T16:29:00.000-07:00</published><updated>2010-09-20T16:44:22.258-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT Code Splitting</title><content type='html'>In my GWT + GXT project, the obfuscated javascript output file is around 1.1MB. It takes quite long for the browser to load all the files before the system is running. So I gave a look on GWT code splitting.&lt;br /&gt;&lt;br /&gt;It's very simple and just need to implement&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;&lt;span class="pln"&gt;GWT&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;runAsync&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="kwd"&gt;new&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;RunAsyncCallback&lt;/span&gt;&lt;span class="pun"&gt;()&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;{}&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="pun"&gt;Set GWT compiler parameter :  -compileReport. Make sure you disable draft compile mode since it will not produce the SOYC(Story of your compile)&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;You can see the compile report as you know what is going to be downloaded on initial download, full download and leftover.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/webtoolkit/doc/latest/DevGuideCodeSplitting.html"&gt;http://code.google.com/webtoolkit/doc/latest/DevGuideCodeSplitting.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://code.google.com/webtoolkit/doc/latest/DevGuideCompileReport.html"&gt;http://code.google.com/webtoolkit/doc/latest/DevGuideCompileReport.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Soon I will try to reduce the usage of the GXT library which is the most codes included in my initial download.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-412365334224634459?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/412365334224634459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=412365334224634459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/412365334224634459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/412365334224634459'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2010/09/gwt-code-splitting.html' title='GWT Code Splitting'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-2844264979473442345</id><published>2010-07-08T20:14:00.001-07:00</published><updated>2010-07-08T20:30:15.644-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDF'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>HTML Doc PHP Implementation</title><content type='html'>I want to use PDF in my project to print the report. Currently my report is in HTML format since it is easy to generate using PHP. Before this, I have try to use DOMPDF and TCPDF, but unfortunately, there is a lot of customization need to be done to get a good PDF report.&lt;br /&gt;Finally, I found HTMLDoc. It's open source but to get the compiled-ready binary you need to buy.&lt;br /&gt;Fortunately. I found the free compiled binary here :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://htmldoc-binaries.org/"&gt;http://htmldoc-binaries.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Download and install HTMLDoc.&lt;br /&gt;&lt;pre class="csharpcode"&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; function topdf($filename, $options = &lt;span class="str"&gt;""&lt;/span&gt;) {&lt;br /&gt;&lt;br /&gt;      $path = &lt;span class="str"&gt;"library_includes/general/htmldoc/htmldoc.exe"&lt;/span&gt;;&lt;br /&gt;      $path=realpath($path);&lt;br /&gt;      # Tell HTMLDOC not to run &lt;span class="kwrd"&gt;in&lt;/span&gt; CGI mode...&lt;br /&gt;      putenv(&lt;span class="str"&gt;"HTMLDOC_NOCGI=1"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;      $scmd = &lt;span class="str"&gt;"$path -t pdf --quiet --landscape --jpeg --webpage --header ... $options $filename"&lt;/span&gt;;&lt;br /&gt;      # Write the content type to the client...&lt;br /&gt;      header(&lt;span class="str"&gt;"Content-Type: application/pdf"&lt;/span&gt;);&lt;br /&gt;      flush();&lt;br /&gt;      system($scmd);&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt;Just submit your URL / file name and the HTMdoc will will create the PDF on the fly.&lt;br /&gt;For more details about the command line, you can refer be to the document :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.easysw.com/htmldoc/docfiles/8-cmdref.html"&gt;http://www.easysw.com/htmldoc/docfiles/8-cmdref.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But, if your url is password protected using login and session, you need to handle to bypass the session checking since HTMLDoc read the url and PHP will treat HTMLDoc as new session rather than your current.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-2844264979473442345?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/2844264979473442345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=2844264979473442345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/2844264979473442345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/2844264979473442345'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2010/07/html-doc-php-implementation.html' title='HTML Doc PHP Implementation'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-6950230999240933971</id><published>2010-06-30T16:23:00.000-07:00</published><updated>2010-06-30T16:40:20.720-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='GXT'/><title type='text'>GXT Paging Grid With Remote Search</title><content type='html'>I'm using paging grid in GXT to view a list.&lt;br /&gt;The basic is shown below:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;ScriptTagProxy&amp;lt;PagingLoadResult&amp;lt;ModelData&amp;gt;&amp;gt; proxy = &lt;span class="kwrd"&gt;new&lt;/span&gt; ScriptTagProxy&amp;lt;PagingLoadResult&amp;lt;ModelData&amp;gt;&amp;gt;(url);&lt;br /&gt;JsonPagingLoadResultReader&amp;lt;PagingLoadResult&amp;lt;ModelData&amp;gt;&amp;gt; reader = &lt;span class="kwrd"&gt;new&lt;/span&gt; JsonPagingLoadResultReader&amp;lt;PagingLoadResult&amp;lt;ModelData&amp;gt;&amp;gt;(type);&lt;br /&gt;final PagingLoader&amp;lt;PagingLoadResult&amp;lt;ModelData&amp;gt;&amp;gt; loader = &lt;span class="kwrd"&gt;new&lt;/span&gt; BasePagingLoader&amp;lt;PagingLoadResult&amp;lt;ModelData&amp;gt;&amp;gt;(proxy, reader);&lt;br /&gt;loader.setRemoteSort(&lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;br /&gt;final ListStore&amp;lt;ModelData&amp;gt; mystore = &lt;span class="kwrd"&gt;new&lt;/span&gt; ListStore&amp;lt;ModelData&amp;gt;(loader);&lt;br /&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt; mystore;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;But I want to use the same paging component for remote search. Finally I came out  with this solution.&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; searchStaff() {&lt;br /&gt; String url = &lt;span class="str"&gt;"index.php?option=com_model&amp;amp;model={0}&amp;amp;action=getStaffList"&lt;/span&gt;;&lt;br /&gt; PagingLoadConfig config = &lt;span class="kwrd"&gt;new&lt;/span&gt; BasePagingLoadConfig();&lt;br /&gt; config.setOffset(0);&lt;br /&gt; config.setLimit(50);&lt;br /&gt;&lt;br /&gt; BasePagingLoader loader = ((BasePagingLoader) store.getLoader());&lt;br /&gt; ScriptTagProxy proxy = (ScriptTagProxy) loader.getProxy();&lt;br /&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (keyword.getValue() == &lt;span class="kwrd"&gt;null&lt;/span&gt; || keyword.getValue().equals(&lt;span class="str"&gt;""&lt;/span&gt;)) {&lt;br /&gt; } &lt;span class="kwrd"&gt;else&lt;/span&gt; {&lt;br /&gt;     url += &lt;span class="str"&gt;"&amp;amp;keyword="&lt;/span&gt; + keyword.getValue().toString();&lt;br /&gt; }&lt;br /&gt; url = url.replace(&lt;span class="str"&gt;"{0}"&lt;/span&gt;, &lt;span class="str"&gt;"Staff"&lt;/span&gt;);&lt;br /&gt; url = DataUtils.formatURL(url);&lt;br /&gt; url = url.replaceAll(&lt;span class="str"&gt;"kpiwebgwt"&lt;/span&gt;, &lt;span class="str"&gt;"kpiweb"&lt;/span&gt;);&lt;br /&gt; proxy.setUrl(url);&lt;br /&gt; store.getLoader().load(config);&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-6950230999240933971?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/6950230999240933971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=6950230999240933971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6950230999240933971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6950230999240933971'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2010/06/gxt-paging-grid-with-remote-search.html' title='GXT Paging Grid With Remote Search'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-39499863411811434</id><published>2010-06-28T21:44:00.000-07:00</published><updated>2010-06-28T21:45:16.951-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT Native Base64</title><content type='html'>Here is the code:&lt;br /&gt;&lt;br /&gt; public static native String Base64Encode(String data) /*-{&lt;br /&gt;    function encode_base64(data) {&lt;br /&gt;    var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";&lt;br /&gt;    var out = "", c1, c2, c3, e1, e2, e3, e4;&lt;br /&gt;    for (var i = 0; i &lt; data.length; ) {&lt;br /&gt;    c1 = data.charCodeAt(i++);&lt;br /&gt;    c2 = data.charCodeAt(i++);&lt;br /&gt;    c3 = data.charCodeAt(i++);&lt;br /&gt;    e1 = c1 &gt;&gt; 2;&lt;br /&gt;    e2 = ((c1 &amp; 3) &lt;&lt; 4) + (c2 &gt;&gt; 4);&lt;br /&gt;    e3 = ((c2 &amp; 15) &lt;&lt; 2) + (c3 &gt;&gt; 6);&lt;br /&gt;    e4 = c3 &amp; 63;&lt;br /&gt;    if (isNaN(c2))&lt;br /&gt;    e3 = e4 = 64;&lt;br /&gt;    else if (isNaN(c3))&lt;br /&gt;    e4 = 64;&lt;br /&gt;    out += tab.charAt(e1) + tab.charAt(e2) + tab.charAt(e3) + tab.charAt(e4);&lt;br /&gt;    }&lt;br /&gt;    return out;&lt;br /&gt;    }&lt;br /&gt;    return encode_base64(data);&lt;br /&gt;    }-*/;&lt;br /&gt;&lt;br /&gt;    public static native String Base64Decode(String data)/*-{&lt;br /&gt;    function decode_base64(data) {&lt;br /&gt;    var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";&lt;br /&gt;    var out = "", c1, c2, c3, e1, e2, e3, e4;&lt;br /&gt;    for (var i = 0; i &lt; data.length; ) {&lt;br /&gt;    e1 = tab.indexOf(data.charAt(i++));&lt;br /&gt;    e2 = tab.indexOf(data.charAt(i++));&lt;br /&gt;    e3 = tab.indexOf(data.charAt(i++));&lt;br /&gt;    e4 = tab.indexOf(data.charAt(i++));&lt;br /&gt;    c1 = (e1 &lt;&lt; 2) + (e2 &gt;&gt; 4);&lt;br /&gt;    c2 = ((e2 &amp; 15) &lt;&lt; 4) + (e3 &gt;&gt; 2);&lt;br /&gt;    c3 = ((e3 &amp; 3) &lt;&lt; 6) + e4;&lt;br /&gt;    out += String.fromCharCode(c1);&lt;br /&gt;    if (e3 != 64)&lt;br /&gt;    out += String.fromCharCode(c2);&lt;br /&gt;    if (e4 != 64)&lt;br /&gt;    out += String.fromCharCode(c3);&lt;br /&gt;    }&lt;br /&gt;    return out;&lt;br /&gt;    }&lt;br /&gt;    return decode_base64(data);&lt;br /&gt;    }-*/;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-39499863411811434?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/39499863411811434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=39499863411811434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/39499863411811434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/39499863411811434'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2010/06/gwt-native-base64.html' title='GWT Native Base64'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-6296544710992038280</id><published>2010-06-28T21:22:00.000-07:00</published><updated>2010-06-28T21:43:12.712-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT Native RC4 Encryption</title><content type='html'>Here is the code:&lt;br /&gt;&lt;br /&gt; private static native String rc4Encrypt(String key, String pt) /*-{&lt;br /&gt;    function rc4Encrypt1(key, pt) {&lt;br /&gt;    s = new Array();&lt;br /&gt;    for (var i=0; i&lt;256; i++) {&lt;br /&gt;    s[i] = i;&lt;br /&gt;    }&lt;br /&gt;    var j = 0;&lt;br /&gt;    var x;&lt;br /&gt;    for (i=0; i&lt;256; i++) {&lt;br /&gt;    j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;&lt;br /&gt;    x = s[i];&lt;br /&gt;    s[i] = s[j];&lt;br /&gt;    s[j] = x;&lt;br /&gt;    }&lt;br /&gt;    i = 0;&lt;br /&gt;    j = 0;&lt;br /&gt;    var ct = '';&lt;br /&gt;    for (var y=0; y&lt;pt.length; y++) {&lt;br /&gt;    i = (i + 1) % 256;&lt;br /&gt;    j = (j + s[i]) % 256;&lt;br /&gt;    x = s[i];&lt;br /&gt;    s[i] = s[j];&lt;br /&gt;    s[j] = x;&lt;br /&gt;    ct += String.fromCharCode(pt.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);&lt;br /&gt;    }&lt;br /&gt;    return ct;&lt;br /&gt;    }&lt;br /&gt;    return rc4Encrypt1(key, pt);&lt;br /&gt;    }-*/;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-6296544710992038280?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/6296544710992038280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=6296544710992038280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6296544710992038280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6296544710992038280'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2010/06/gwt-native-rc4-encryption.html' title='GWT Native RC4 Encryption'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-545783906919452442</id><published>2010-06-28T21:12:00.000-07:00</published><updated>2010-06-28T21:44:10.632-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT Native MD5</title><content type='html'>Here is the code:&lt;br /&gt;&lt;br /&gt;public static native String md5(String string) /*-{&lt;br /&gt;    function RotateLeft(lValue, iShiftBits) {&lt;br /&gt;    return (lValue&lt;&lt;ishiftbits)&gt;&gt;&gt;(32-iShiftBits));&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    function AddUnsigned(lX,lY) {&lt;br /&gt;    var lX4,lY4,lX8,lY8,lResult;&lt;br /&gt;    lX8 = (lX &amp;amp; 0x80000000);&lt;br /&gt;    lY8 = (lY &amp;amp; 0x80000000);&lt;br /&gt;    lX4 = (lX &amp;amp; 0x40000000);&lt;br /&gt;    lY4 = (lY &amp;amp; 0x40000000);&lt;br /&gt;    lResult = (lX &amp;amp; 0x3FFFFFFF)+(lY &amp;amp; 0x3FFFFFFF);&lt;br /&gt;    if (lX4 &amp;amp; lY4) {&lt;br /&gt;    return (lResult ^ 0x80000000 ^ lX8 ^ lY8);&lt;br /&gt;    }&lt;br /&gt;    if (lX4 | lY4) {&lt;br /&gt;    if (lResult &amp;amp; 0x40000000) {&lt;br /&gt;    return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);&lt;br /&gt;    } else {&lt;br /&gt;    return (lResult ^ 0x40000000 ^ lX8 ^ lY8);&lt;br /&gt;    }&lt;br /&gt;    } else {&lt;br /&gt;    return (lResult ^ lX8 ^ lY8);&lt;br /&gt;    }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    function F(x,y,z) { return (x &amp;amp; y) | ((~x) &amp;amp; z); }&lt;br /&gt;    function G(x,y,z) { return (x &amp;amp; z) | (y &amp;amp; (~z)); }&lt;br /&gt;    function H(x,y,z) { return (x ^ y ^ z); }&lt;br /&gt;    function I(x,y,z) { return (y ^ (x | (~z))); }&lt;br /&gt;&lt;br /&gt;    function FF(a,b,c,d,x,s,ac) {&lt;br /&gt;    a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));&lt;br /&gt;    return AddUnsigned(RotateLeft(a, s), b);&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    function GG(a,b,c,d,x,s,ac) {&lt;br /&gt;    a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));&lt;br /&gt;    return AddUnsigned(RotateLeft(a, s), b);&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    function HH(a,b,c,d,x,s,ac) {&lt;br /&gt;    a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));&lt;br /&gt;    return AddUnsigned(RotateLeft(a, s), b);&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    function II(a,b,c,d,x,s,ac) {&lt;br /&gt;    a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));&lt;br /&gt;    return AddUnsigned(RotateLeft(a, s), b);&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    function ConvertToWordArray(string) {&lt;br /&gt;    var lWordCount;&lt;br /&gt;    var lMessageLength = string.length;&lt;br /&gt;    var lNumberOfWords_temp1=lMessageLength + 8;&lt;br /&gt;    var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1&lt;br /&gt;    % 64))/64;&lt;br /&gt;    var lNumberOfWords = (lNumberOfWords_temp2+1)*16;&lt;br /&gt;    var lWordArray=Array(lNumberOfWords-1);&lt;br /&gt;    var lBytePosition = 0;&lt;br /&gt;    var lByteCount = 0;&lt;br /&gt;    while ( lByteCount &lt; lMessageLength ) {&lt;br /&gt;    lWordCount = (lByteCount-(lByteCount % 4))/4;&lt;br /&gt;    lBytePosition = (lByteCount % 4)*8;&lt;br /&gt;    lWordArray[lWordCount] = (lWordArray[lWordCount] |&lt;br /&gt;    (string.charCodeAt(lByteCount)&lt;&lt;lBytePosition));&lt;br /&gt;    lByteCount++;&lt;br /&gt;    }&lt;br /&gt;    lWordCount = (lByteCount-(lByteCount % 4))/4;&lt;br /&gt;    lBytePosition = (lByteCount % 4)*8;&lt;br /&gt;    lWordArray[lWordCount] = lWordArray[lWordCount] |&lt;br /&gt;    (0x80&lt;&lt;lBytePosition);&lt;br /&gt;    lWordArray[lNumberOfWords-2] = lMessageLength&lt;&lt;3;&lt;br /&gt;    lWordArray[lNumberOfWords-1] = lMessageLength&gt;&gt;&gt;29;&lt;br /&gt;    return lWordArray;&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    function WordToHex(lValue) {&lt;br /&gt;    var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;&lt;br /&gt;    for (lCount = 0;lCount&lt;=3;lCount++) {&lt;br /&gt;    lByte = (lValue&gt;&gt;&gt;(lCount*8)) &amp;amp; 255;&lt;br /&gt;    WordToHexValue_temp = "0" + lByte.toString(16);&lt;br /&gt;    WordToHexValue = WordToHexValue +&lt;br /&gt;    WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);&lt;br /&gt;    }&lt;br /&gt;    return WordToHexValue;&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    function Utf8Encode(string) {&lt;br /&gt;    string = string.replace(/\r\n/g,"\n");&lt;br /&gt;    var utftext = "";&lt;br /&gt;&lt;br /&gt;    for (var n = 0; n &lt; string.length; n++) {&lt;br /&gt;&lt;br /&gt;    var c = string.charCodeAt(n);&lt;br /&gt;&lt;br /&gt;    if (c &lt; 128) {&lt;br /&gt;    utftext += String.fromCharCode(c);&lt;br /&gt;    }&lt;br /&gt;    else if((c &gt; 127) &amp;amp;&amp;amp; (c &lt; 2048)) {&lt;br /&gt;    utftext += String.fromCharCode((c &gt;&gt; 6) | 192);&lt;br /&gt;    utftext += String.fromCharCode((c &amp;amp; 63) | 128);&lt;br /&gt;    }&lt;br /&gt;    else {&lt;br /&gt;    utftext += String.fromCharCode((c &gt;&gt; 12) | 224);&lt;br /&gt;    utftext += String.fromCharCode(((c &gt;&gt; 6) &amp;amp; 63) | 128);&lt;br /&gt;    utftext += String.fromCharCode((c &amp;amp; 63) | 128);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    return utftext;&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    var x=Array();&lt;br /&gt;    var k,AA,BB,CC,DD,a,b,c,d;&lt;br /&gt;    var S11=7, S12=12, S13=17, S14=22;&lt;br /&gt;    var S21=5, S22=9 , S23=14, S24=20;&lt;br /&gt;    var S31=4, S32=11, S33=16, S34=23;&lt;br /&gt;    var S41=6, S42=10, S43=15, S44=21;&lt;br /&gt;&lt;br /&gt;    string = Utf8Encode(string);&lt;br /&gt;&lt;br /&gt;    x = ConvertToWordArray(string);&lt;br /&gt;&lt;br /&gt;    a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;&lt;br /&gt;&lt;br /&gt;    for (k=0;k&lt;x.length;k+=16) {&lt;br /&gt;    AA=a; BB=b; CC=c; DD=d;&lt;br /&gt;    a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);&lt;br /&gt;    d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);&lt;br /&gt;    c=FF(c,d,a,b,x[k+2], S13,0x242070DB);&lt;br /&gt;    b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);&lt;br /&gt;    a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);&lt;br /&gt;    d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);&lt;br /&gt;    c=FF(c,d,a,b,x[k+6], S13,0xA8304613);&lt;br /&gt;    b=FF(b,c,d,a,x[k+7], S14,0xFD469501);&lt;br /&gt;    a=FF(a,b,c,d,x[k+8], S11,0x698098D8);&lt;br /&gt;    d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);&lt;br /&gt;    c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);&lt;br /&gt;    b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);&lt;br /&gt;    a=FF(a,b,c,d,x[k+12],S11,0x6B901122);&lt;br /&gt;    d=FF(d,a,b,c,x[k+13],S12,0xFD987193);&lt;br /&gt;    c=FF(c,d,a,b,x[k+14],S13,0xA679438E);&lt;br /&gt;    b=FF(b,c,d,a,x[k+15],S14,0x49B40821);&lt;br /&gt;    a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);&lt;br /&gt;    d=GG(d,a,b,c,x[k+6], S22,0xC040B340);&lt;br /&gt;    c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);&lt;br /&gt;    b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);&lt;br /&gt;    a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);&lt;br /&gt;    d=GG(d,a,b,c,x[k+10],S22,0x2441453);&lt;br /&gt;    c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);&lt;br /&gt;    b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);&lt;br /&gt;    a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);&lt;br /&gt;    d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);&lt;br /&gt;    c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);&lt;br /&gt;    b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);&lt;br /&gt;    a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);&lt;br /&gt;    d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);&lt;br /&gt;    c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);&lt;br /&gt;    b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);&lt;br /&gt;    a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);&lt;br /&gt;    d=HH(d,a,b,c,x[k+8], S32,0x8771F681);&lt;br /&gt;    c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);&lt;br /&gt;    b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);&lt;br /&gt;    a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);&lt;br /&gt;    d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);&lt;br /&gt;    c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);&lt;br /&gt;    b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);&lt;br /&gt;    a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);&lt;br /&gt;    d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);&lt;br /&gt;    c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);&lt;br /&gt;    b=HH(b,c,d,a,x[k+6], S34,0x4881D05);&lt;br /&gt;    a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);&lt;br /&gt;    d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);&lt;br /&gt;    c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);&lt;br /&gt;    b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);&lt;br /&gt;    a=II(a,b,c,d,x[k+0], S41,0xF4292244);&lt;br /&gt;    d=II(d,a,b,c,x[k+7], S42,0x432AFF97);&lt;br /&gt;    c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);&lt;br /&gt;    b=II(b,c,d,a,x[k+5], S44,0xFC93A039);&lt;br /&gt;    a=II(a,b,c,d,x[k+12],S41,0x655B59C3);&lt;br /&gt;    d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);&lt;br /&gt;    c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);&lt;br /&gt;    b=II(b,c,d,a,x[k+1], S44,0x85845DD1);&lt;br /&gt;    a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);&lt;br /&gt;    d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);&lt;br /&gt;    c=II(c,d,a,b,x[k+6], S43,0xA3014314);&lt;br /&gt;    b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);&lt;br /&gt;    a=II(a,b,c,d,x[k+4], S41,0xF7537E82);&lt;br /&gt;    d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);&lt;br /&gt;    c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);&lt;br /&gt;    b=II(b,c,d,a,x[k+9], S44,0xEB86D391);&lt;br /&gt;    a=AddUnsigned(a,AA);&lt;br /&gt;    b=AddUnsigned(b,BB);&lt;br /&gt;    c=AddUnsigned(c,CC);&lt;br /&gt;    d=AddUnsigned(d,DD);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);&lt;br /&gt;&lt;br /&gt;    return temp.toLowerCase();&lt;br /&gt;    }-*/;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-545783906919452442?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/545783906919452442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=545783906919452442' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/545783906919452442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/545783906919452442'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2010/06/gwt-native-md5.html' title='GWT Native MD5'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-5085918442956026812</id><published>2010-05-26T02:16:00.000-07:00</published><updated>2010-06-30T16:17:33.842-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='GXT'/><title type='text'>GXT Paging Row Number</title><content type='html'>I got problem to display the row number for the paging grid.&lt;br /&gt;The value always start from 1 to the end of row in the grid.&lt;br /&gt;After trying several methods (actually several frustrated hours), finally I found the soultion.&lt;br /&gt;It's very simple and I don't believe, why I not think of this before.&lt;br /&gt;&lt;br /&gt;Here is the code&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;final RowNumberer rn = &lt;span class="kwrd"&gt;new&lt;/span&gt; RowNumberer();&lt;br /&gt;rn.setWidth(30);&lt;br /&gt;rn.setRenderer(&lt;span class="kwrd"&gt;new&lt;/span&gt; GridCellRenderer() {&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; Object render(ModelData model, String property, ColumnData config, &lt;span class="kwrd"&gt;int&lt;/span&gt; rowIndex, &lt;span class="kwrd"&gt;int&lt;/span&gt; colIndex, ListStore store, Grid grid) {&lt;br /&gt;&lt;span class="kwrd"&gt;int&lt;/span&gt; offset = 0;&lt;br /&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (store.getLoadConfig().get(&lt;span class="str"&gt;"offset"&lt;/span&gt;) != &lt;span class="kwrd"&gt;null&lt;/span&gt;) {&lt;br /&gt;offset = Integer.parseInt(store.getLoadConfig().get(&lt;span class="str"&gt;"offset"&lt;/span&gt;).toString());&lt;br /&gt;}&lt;br /&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt; offset + rowIndex + 1;&lt;br /&gt;}&lt;br /&gt;});&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-5085918442956026812?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/5085918442956026812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=5085918442956026812' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/5085918442956026812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/5085918442956026812'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2010/05/gxt-paging-row-number.html' title='GXT Paging Row Number'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-6061314800801696678</id><published>2010-05-24T20:32:00.000-07:00</published><updated>2010-05-25T22:38:13.133-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT - PHP on Apache 2nd Review</title><content type='html'>My latest project doesn't let quercus running on glassfish. I need to to remove quercus before the project can be deployed.&lt;br /&gt;&lt;br /&gt;Finally I found a new way to enable data transfer from GWT application on GlassFish Server to Apache Web Server. The solution is simpler. No querchos  and curl php script required.&lt;br /&gt;&lt;br /&gt;How it can be possible?&lt;br /&gt;&lt;br /&gt;Let say the Apache is running on port 80 and glassfish is running on port 8080.&lt;br /&gt;Let say your GWT project is in /web1 folder on glassfish.&lt;br /&gt;Let say your PHP project in in /web1 folder on Apache.&lt;br /&gt;&lt;br /&gt;First you need to set Apache proxy settings. You might need to install the module if you don't have one on your Apache.&lt;br /&gt;&lt;br /&gt;Open the apache httpd.conf file and add the following lines&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;LoadModule proxy_module modules/mod_proxy.so&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LoadModule proxy_http_module modules/mod_proxy_http.so&lt;br /&gt;&lt;proxy&gt;&lt;br /&gt;   Order deny,allow&lt;br /&gt;   Allow from all&lt;/proxy&gt;&lt;br /&gt;&lt;br /&gt;ProxyRequests           on&lt;br /&gt;ProxyPreserveHost       on&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;ProxyPass /web2 http://localhost:8080/web1/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ProxyPassReverse /web2 http://localhost:8080/web1/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;using the setting your GWT project can be access using this following URL&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;http://localhost/web2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In your GWT project the data can be access using &lt;span style=";font-family:courier new;font-size:85%;"  &gt;http://localhost/web1.&lt;/span&gt; Now it's on the same domain with your GWT project on &lt;span style=";font-family:courier new;font-size:85%;"  &gt;http://localhost/web2.&lt;/span&gt; You can access to any php script on your Apache from GWT without creating any proxy servlet or curl script.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-6061314800801696678?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/6061314800801696678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=6061314800801696678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6061314800801696678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6061314800801696678'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2010/05/gwt-php-on-apache-2nd-review.html' title='GWT - PHP on Apache 2nd Review'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-8340025153758590340</id><published>2010-03-02T23:59:00.001-08:00</published><updated>2010-03-03T00:39:16.718-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Zebra Printer'/><title type='text'>Working with Zebra RW420</title><content type='html'>Bulan lepas aku buat program untuk project MEPA, untuk print resit guna Zebra Rw420 melalui bluetooth. Printer banyak org pakai untuk portable billing macam TNB, SYABAS dan yang seaktu dengannya. Sebenarnya, printer tu jadi serial port je. Jadi kena buat serial port programming la untuk hantar data ke printer.&lt;br /&gt;&lt;br /&gt;Cara mudah nak pakainya macam ni.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Untuk design resit, boleh guna label vista. Program ni datang sekali dengan printer ni.&lt;/li&gt;&lt;li&gt;Untuk grafik, font yang x standard, kena upload ke printer terlebih dahulu sebelum boleh pakai.&lt;/li&gt;&lt;li&gt;Lepas tu, untuk text just guna mana tag untuk replace tag tu nanti dengan value yang sebenar. Sebagai contoh {$tarikh}.&lt;/li&gt;&lt;li&gt;Save file projek label vista tu. Sebenarnya fail project tu dia simpan dalam format CPL.&lt;/li&gt;&lt;li&gt;Untuk program serial port, just read file template tu, replace string tag tu dengan value-value yang sepatutunya dan send ke serial port.&lt;/li&gt;&lt;li&gt;Serial port perlu dibuka sepanjang process printing. Kalau close, printer x akan print resit. Sementara nak tunggu tu, boleh baca status printer busy , paper status dan sebagainya.&lt;/li&gt;&lt;li&gt;Dah siap print, baru la tutup serial port.&lt;br /&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/7966116666272165780-8340025153758590340?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/8340025153758590340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=8340025153758590340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8340025153758590340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8340025153758590340'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2010/03/working-on-zebra-rw420.html' title='Working with Zebra RW420'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-8315027587037094743</id><published>2010-03-02T23:47:00.000-08:00</published><updated>2010-03-02T23:58:33.114-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>DeepSea Obfuscator</title><content type='html'>Aku nk obfuscate kod automatik bila aku compile projek.&lt;br /&gt;Setakat yang aku try, aku jumpa DeepSea Obfuscator dan aku rasa agak menarik untuk dicuba.&lt;br /&gt;&lt;br /&gt;Boleh pakai secara external atau integrate terus dengan .NET 2005/2010.&lt;br /&gt;Senang je nak pakai, since just set config atau load config guna software dia dan load balik masa compile.&lt;br /&gt;&lt;br /&gt;Untuk ILmerge aku dah pakai script lain masa post-build.&lt;br /&gt;Jadi aku boleh automatekan code merge &amp;amp; obfuscate semasa build time.&lt;br /&gt;&lt;br /&gt;url : &lt;a href="http://www.deepseaobfuscator.com/home.aspx"&gt;http://www.deepseaobfuscator.com/home.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-8315027587037094743?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/8315027587037094743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=8315027587037094743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8315027587037094743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8315027587037094743'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2010/03/deepsea-obfuscator.html' title='DeepSea Obfuscator'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-1051751936698599885</id><published>2010-03-02T23:40:00.000-08:00</published><updated>2010-03-02T23:44:37.546-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Using ILMerge in a post build step</title><content type='html'>Reference : http://geekswithblogs.net/mapfel/archive/2008/11/01/126469.aspx&lt;br /&gt;&lt;br /&gt;I want automate the ILMerge process on build time.&lt;br /&gt;I found this article and it works for me with minimal modification.&lt;br /&gt;&lt;br /&gt;This is my ilmerge.bat file content&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;ECHO parameter=%1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;CD %1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;COPY testLib.dll temp.dll&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;"C:\Program Files\Microsoft\ILMerge\ILMerge.exe" /out:testlib2.dll testLib.dll VL.dll&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;DEL temp.dll&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;on project configuration, build event just add below text in post-build event&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;"$(TargetDir)ILMerge.bat" "$(TargetDir)"&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-1051751936698599885?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/1051751936698599885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=1051751936698599885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/1051751936698599885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/1051751936698599885'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2010/03/using-ilmerge-in-post-build-step.html' title='Using ILMerge in a post build step'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-214662804987038200</id><published>2009-12-18T05:08:00.001-08:00</published><updated>2009-12-18T05:28:44.417-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outlook'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Couldn't open outlook Windows</title><content type='html'>My boss asked me, why his outlook couldn't be started and keep giving the error message "Couldn't open outlook Windows". Luckily I found the solution on google.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Just open the start menu dan type &lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;outlook /resetnavpane&lt;/span&gt;&lt;/span&gt; on the run command text box.&lt;/li&gt;&lt;li&gt;If you could'nt find the run command text box, just simply press the Windows button and R button simultaneously.&lt;/li&gt;&lt;/ol&gt;Now he can start the outlook dan running faster than ever.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-214662804987038200?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/214662804987038200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=214662804987038200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/214662804987038200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/214662804987038200'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/12/couldnt-open-outlook-windows.html' title='Couldn&apos;t open outlook Windows'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-3513509623290961208</id><published>2009-12-15T03:02:00.001-08:00</published><updated>2009-12-15T03:16:39.523-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Lighttpd'/><title type='text'>Lighttpd PHP File Upload - Error 413 request entity is too large</title><content type='html'>I'm having problem with PHP File upload running on lighttpd web server deployed on my VortexSX86. Lighttpd keep giving me the 413 error message ( 413 request entity is tool large)&lt;br /&gt;&lt;br /&gt;Open /etc/lighttd/lighttpd.conf change the following parameters :&lt;br /&gt;&lt;pre&gt;server.max-request-size=100000000     # or whatever you want max file size to be&lt;br /&gt;server.upload-dirs=( "/mnt" )     # location to place the uploaded file&lt;br /&gt;                               # probably should be the same as php.ini&lt;br /&gt;server.network-backend="write"    # this one was the key one for me&lt;br /&gt;&lt;br /&gt;if the value of "write" doesn't work, try "writev".&lt;br /&gt;&lt;br /&gt;server.network-backend="write" or server.network-backend="writev"&lt;br /&gt;&lt;/pre&gt;Make sure the upload directory is exist and writable.&lt;br /&gt;Done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-3513509623290961208?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/3513509623290961208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=3513509623290961208' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3513509623290961208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3513509623290961208'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/12/lighttpd-php-file-upload.html' title='Lighttpd PHP File Upload - Error 413 request entity is too large'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-6793704399034136282</id><published>2009-11-19T22:47:00.000-08:00</published><updated>2009-11-19T23:00:14.348-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT Property Grid Readonly</title><content type='html'>In my case I want to set the property grid to read only mode.&lt;br /&gt;How I can do that?&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Readonly. Can't copy.&lt;br /&gt;&lt;br /&gt;Just add the editor event listener of the property panel, and on doBeforeEdit, set to always return false;&lt;br /&gt;&lt;pre class="csharpcode"&gt;LTCInfoGrid.addEditorGridListener(&lt;span class="kwrd"&gt;new&lt;/span&gt; EditorGridListenerAdapter(){&lt;br /&gt;        @Override&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; boolean doBeforeEdit(GridPanel grid, Record record, String field, Object &lt;span class="kwrd"&gt;value&lt;/span&gt;, &lt;span class="kwrd"&gt;int&lt;/span&gt; rowIndex, &lt;span class="kwrd"&gt;int&lt;/span&gt; colIndex) {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; super.doBeforeEdit(grid, record, field, &lt;span class="kwrd"&gt;value&lt;/span&gt;, rowIndex, colIndex);&lt;br /&gt;        }&lt;br /&gt;)};&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Read only. Can copy &amp;amp; modified but reset the changes.&lt;br /&gt;&lt;br /&gt;Add the listener to editor listener, on doValidateEdit, set to always return false&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;LTCInfoGrid.addEditorGridListener(&lt;span class="kwrd"&gt;new&lt;/span&gt; EditorGridListenerAdapter(){&lt;br /&gt;&lt;br /&gt; @Override&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; boolean doValidateEdit(GridPanel grid, Record record, String field, Object &lt;span class="kwrd"&gt;value&lt;/span&gt;, Object originalValue, &lt;span class="kwrd"&gt;int&lt;/span&gt; rowIndex, &lt;span class="kwrd"&gt;int&lt;/span&gt; colIndex) {&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt; }&lt;br /&gt;});&lt;br /&gt;&lt;/pre&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/7966116666272165780-6793704399034136282?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/6793704399034136282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=6793704399034136282' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6793704399034136282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6793704399034136282'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/11/gwt-property-grid-readonly.html' title='GWT Property Grid Readonly'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-6359093643704627033</id><published>2009-11-16T13:52:00.000-08:00</published><updated>2009-11-17T23:45:32.754-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>SSH login without password</title><content type='html'>Source : http://linuxproblem.org/art_9.html&lt;br /&gt;Note : Aku dah try. Jalan.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Your aim&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You want to use Linux and OpenSSH to automize your tasks. Therefore you need an automatic login from host A / user a to Host B / user b. You don't want to enter any passwords, because you want to call ssh from a within a shell script.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How to do it&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First log in on A as user a and generate a pair of authentication keys. Do not enter a passphrase:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;a@A:~&amp;gt; ssh-keygen -t rsa&lt;br /&gt;Generating &lt;span class="kwrd"&gt;public&lt;/span&gt;/&lt;span class="kwrd"&gt;private&lt;/span&gt; rsa key pair.&lt;br /&gt;Enter file &lt;span class="kwrd"&gt;in&lt;/span&gt; which to save the key (/home/a/.ssh/id_rsa):&lt;br /&gt;Created directory &lt;span class="str"&gt;'/home/a/.ssh'&lt;/span&gt;.&lt;br /&gt;Enter passphrase (empty &lt;span class="kwrd"&gt;for&lt;/span&gt; no passphrase):&lt;br /&gt;Enter same passphrase again:&lt;br /&gt;Your identification has been saved &lt;span class="kwrd"&gt;in&lt;/span&gt; /home/a/.ssh/id_rsa.&lt;br /&gt;Your &lt;span class="kwrd"&gt;public&lt;/span&gt; key has been saved &lt;span class="kwrd"&gt;in&lt;/span&gt; /home/a/.ssh/id_rsa.pub.&lt;br /&gt;The key fingerprint &lt;span class="kwrd"&gt;is&lt;/span&gt;:&lt;br /&gt;3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A&lt;/pre&gt;&lt;br /&gt;Now use ssh to create a directory ~/.ssh as user b on B. (The directory may already exist, which is fine):&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;a@A:~&gt; ssh b@B mkdir -p .ssh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;b@B's password:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Finally append a's new public key to b@B:.ssh/authorized_keys and enter b's password one last time:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;a@A:~&gt; cat .ssh/id_rsa.pub | ssh b@B 'cat &gt;&gt; .ssh/authorized_keys'&lt;br /&gt;b@B's password:&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;From now on you can log into B as b from A as a without password:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;a@A:~&amp;gt; ssh b@B hostname&lt;br /&gt;B&lt;br /&gt;&lt;/pre&gt;A note from one of our readers: Depending on your version of SSH you might also have to do the following changes:&lt;br /&gt;&lt;br /&gt;* Put the public key in .ssh/authorized_keys2&lt;br /&gt;* Change the permissions of .ssh to 700&lt;br /&gt;* Change the permissions of .ssh/authorized_keys2 to 640&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-6359093643704627033?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/6359093643704627033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=6359093643704627033' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6359093643704627033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6359093643704627033'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/11/ssh-login-without-password.html' title='SSH login without password'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-4348239905071097991</id><published>2009-11-16T00:30:00.000-08:00</published><updated>2009-11-16T02:05:49.417-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Web Auto Update (Linux + PHP)</title><content type='html'>In my project, the controller will be place at the remote site (like sabah &amp;amp; sawarak) and having sluggish internet connection. I need the controller to automatic update the firmware during the transfer.&lt;br /&gt;&lt;br /&gt;How to do it?&lt;br /&gt;&lt;ol&gt;&lt;li&gt;download the update script.&lt;br /&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CUsers%5Cpeyo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CUsers%5Cpeyo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CUsers%5Cpeyo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:courier new;"&gt;wget http://192.168.0.8/ipvision-client/tools/autoupdate.php?id=IPV0001 -O autoupdate.sh&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Change the script file permission to allow execute.&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;/bin/chmod 777 autoupdate.sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Execute the script&lt;br /&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CUsers%5Cpeyo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CUsers%5Cpeyo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CUsers%5Cpeyo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:.5in; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:.5in; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:301891514; 	mso-list-type:hybrid; 	mso-list-template-ids:-1088902958 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 	{mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-.25in;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;bin/sh /tmp/autoupdate.sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;update the status, so this operation not reoccur.&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CUsers%5Cpeyo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CUsers%5Cpeyo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:.5in; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:.5in; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:301891514; 	mso-list-type:hybrid; 	mso-list-template-ids:-1088902958 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 	{mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-.25in;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;wget http://192.168.0.8/ipvision-client/tools/autoupdate.php?id=IPV0001&amp;amp;action=done&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;put the script on cron job.&lt;link rel="File-List" href="file:///C:%5CUsers%5Cpeyo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CUsers%5Cpeyo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CUsers%5Cpeyo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;/li&gt;&lt;/ol&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}&lt;/style&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-4348239905071097991?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/4348239905071097991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=4348239905071097991' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4348239905071097991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4348239905071097991'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/11/web-auto-update-linux-php.html' title='Web Auto Update (Linux + PHP)'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-2849050587059773790</id><published>2009-11-16T00:14:00.000-08:00</published><updated>2009-11-16T15:42:03.823-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Fileupload firmware update (linux + php)</title><content type='html'>I would like to perform the firmware update over file upload in my current project.&lt;br /&gt;In my case I'm using Linux + PHP running on my vortex86SX controller.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How to do it ??&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Just pack all the updated files together and create a installation script (shell script) called installupdate.sh.&lt;/li&gt;&lt;li&gt;Since shell script created is created on Windows, Linux is having problem to execute the script since it don't understand the additional trail ("\r") for new line. I use this command to remove the "\r" character.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/bin/cat /tmp/installupdate/installupdate.sh | /bin/tr -d "\r" &gt; /tmp/installupdate&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;change permission of installation script to enable execute.&lt;/li&gt;&lt;li&gt;run the installation script&lt;br /&gt;&lt;/li&gt;&lt;li&gt;remove all the temporary files&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Full code :&lt;/span&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;function installupdate(){&lt;br /&gt; $uploadfile = &lt;span class="str"&gt;'/tmp/installupdate.zip'&lt;/span&gt;;&lt;br /&gt; &lt;span class="rem"&gt;//phpinfo();&lt;/span&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (move_uploaded_file($_FILES[&lt;span class="str"&gt;'uploadfile'&lt;/span&gt;][&lt;span class="str"&gt;'tmp_name'&lt;/span&gt;], $uploadfile)) {&lt;br /&gt;     $cmd=&lt;span class="str"&gt;'/bin/mkdir /tmp/installupdate&lt;br /&gt;     /bin/unzip -o /tmp/installupdate.zip -d /tmp/installupdate&lt;br /&gt;     cd /tmp/installupdate/&lt;br /&gt;     /bin/cat /tmp/installupdate/installupdate.sh | /bin/tr -d "\r" &amp;gt; /tmp/installupdate/installupdate.sh&lt;br /&gt;     /bin/chmod 777 /tmp/installupdate/installupdate.sh&lt;br /&gt;     /bin/sh /tmp/installupdate/installupdate.sh&lt;br /&gt;     /bin/rm /tmp/installupdate.zip&lt;br /&gt;     /bin/rm /tmp/installupdate -r&lt;br /&gt;     '&lt;/span&gt;;         &lt;br /&gt;     echo &lt;span class="str"&gt;"File is valid, and was successfully uploaded.\n"&lt;/span&gt;;&lt;br /&gt;     system(&lt;span class="str"&gt;"$cmd"&lt;/span&gt;);&lt;br /&gt; } &lt;span class="kwrd"&gt;else&lt;/span&gt; {&lt;br /&gt;     echo &lt;span class="str"&gt;"Possible file upload attack!\n"&lt;/span&gt;;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-2849050587059773790?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/2849050587059773790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=2849050587059773790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/2849050587059773790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/2849050587059773790'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/11/fileupload-firmware-update-linux-php.html' title='Fileupload firmware update (linux + php)'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-6120962550706725817</id><published>2009-11-04T06:34:00.000-08:00</published><updated>2009-11-04T06:42:02.074-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT-Ext &amp; PHP , Glassfish &amp; Apache</title><content type='html'>Berikut cara macam mana nak guna GWT-Ext dalam Galssfish dan data dalam Apache-PHP.&lt;br /&gt;&lt;br /&gt;1. Install Quercus. Ni carik post aku sebelum ni.&lt;br /&gt;2. Create gateway script dalam glassfish (php-Quercus). Nama fail sebaiknya sama dengan nama fail dalam apache (php).&lt;br /&gt;&lt;br /&gt;Fail scriptnya adalah seperti di bawah. Support untuk GET, POST &amp;amp; SESSION.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;// create a new cURL resource&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;$ch = curl_init();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;// set URL and other appropriate options&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;curl_setopt($ch, CURLOPT_URL, "http://localhost/adapt-gwt/index.php");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;curl_setopt($ch, CURLOPT_HEADER, false);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;curl_setopt($ch, CURLOPT_VERBOSE, true);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;curl_setopt($ch, CURLOPT_POST, true);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;// grab URL and pass it to the browser&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;curl_exec($ch);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;// close cURL resource, and free up system resources&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;curl_close($ch);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;?&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-6120962550706725817?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/6120962550706725817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=6120962550706725817' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6120962550706725817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6120962550706725817'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/11/gwt-ext-php-glassfish-apache.html' title='GWT-Ext &amp; PHP , Glassfish &amp; Apache'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-4014587163574533962</id><published>2009-11-04T06:22:00.000-08:00</published><updated>2009-11-16T14:35:48.734-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>Install quercus -100% Java implementation of the PHP</title><content type='html'>Berikut adalah cara-cara untuk install quercus.&lt;br /&gt;&lt;br /&gt;1. Download fail .war dari web &lt;a href="http://quercus.caucho.com/"&gt;http://quercus.caucho.com/&lt;/a&gt;&lt;br /&gt;2. Deploy fail .war dalam glassfish.&lt;br /&gt;3. Extract fail .war dan copy semua fail .jar dalam folder&lt;span style="font-family:courier new;"&gt; &lt;span style="font-size:85%;"&gt;/WEBINF/lib/&lt;/span&gt;&lt;/span&gt; ke folder &lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;code&gt;GLASSFISH_HOME/domains/domain/lib&lt;/code&gt;&lt;/span&gt;.&lt;br /&gt;4. Tambah servlet &amp;amp; mapping dalam web.xml&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;code&gt;&amp;lt;servlet&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;servlet-name&amp;gt;Quercus Servlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;servlet-class&amp;gt;com.caucho.quercus.servlet.QuercusServlet&amp;lt;/servlet-class&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/servlet&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;servlet-name&amp;gt;Quercus Servlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;url-pattern&amp;gt;*.php&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/servlet-mapping&amp;gt; &lt;/code&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;6. create fail &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;index.php&lt;/span&gt;&lt;/span&gt; dan deploy.&lt;br /&gt;7. Try access fail php dari web browser.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-4014587163574533962?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/4014587163574533962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=4014587163574533962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4014587163574533962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4014587163574533962'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/11/install-quercus-100-java-implementation.html' title='Install quercus -100% Java implementation of the PHP'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-1930566304584639911</id><published>2009-11-04T06:13:00.000-08:00</published><updated>2009-11-04T06:22:14.451-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT-Ext dengan PHP</title><content type='html'>Oleh kerana aplikasi GWT-Ext perlu menggunakan JAVA, agak susah untuk menggunakan data dari domain yang berlainan. Contohnya :&lt;br /&gt;&lt;br /&gt;GWT -Glassfish guna port 16476.&lt;br /&gt;PHP-Apache guna port 80.&lt;br /&gt;&lt;br /&gt;Terdapat 2 cara untuk menggunakan php.&lt;br /&gt;1. Install quercus -100% Java implementation of the PHP dan guna quercus ni saja.&lt;br /&gt;2. Install quercus -100% Java implementation of the PHP dan guna PHP pada apache web server pada port 80. Kena pakai CURL.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-1930566304584639911?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/1930566304584639911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=1930566304584639911' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/1930566304584639911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/1930566304584639911'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/11/gwt-ext-dengan-php.html' title='GWT-Ext dengan PHP'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-8471778819375563804</id><published>2009-10-15T03:05:00.000-07:00</published><updated>2009-10-15T03:19:26.917-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network'/><title type='text'>SSH Reverse Tunneling</title><content type='html'>Hari yang x berapa memberansangkan walapun banyak keje siap hari ni.&lt;br /&gt;Hari ni aku nak cerita sikit pasal SSH Remote Tunnling. Aku buat ni sebab aku nak masuk ke Linux board aku yang aku remote site tapi dia x de public ic untuk access direct. So kena la buat ssh reverse tunneling.&lt;br /&gt;&lt;br /&gt;Dekat Controller :&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ssh -R 2000:127.0.0.1:22 root@remoteserver.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dekat PC aku pulak kena buat 2 connection.&lt;br /&gt;&lt;br /&gt;1st  untuk buat poft forwarding port ke local port.&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ssh -L 90:127.0.0.1:2000 root@remoteserver.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;jadi aku dah buat tunneling port 90 (pc aku) ke port 2000 kat remote server --&gt; controller port 22.&lt;br /&gt;&lt;br /&gt;Jadi, untuk masuk ke console controller aku tu :&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ssh root@127.0.0.1 -p 90&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;jadi boleh la aku masuk ke console controller aku tu dan buat la apa-apa yang aku nak buat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-8471778819375563804?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/8471778819375563804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=8471778819375563804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8471778819375563804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8471778819375563804'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/10/ssh-reverse-tunneling.html' title='SSH Reverse Tunneling'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-5078504907147955940</id><published>2009-09-27T23:44:00.001-07:00</published><updated>2009-09-28T00:04:59.744-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>.NET Licensing</title><content type='html'>I'm going to put the license component in my .Net program and considering the license for developer and run time.Microsoft already provide several licensing model in .NET such as Registry or Lic File.As for me, I'm prefer to use WMI with a propitiatory algorithm such as encryption to generate the license as I can generate an unique license key for each computer.&lt;br /&gt;&lt;br /&gt;This how we could do that :&lt;br /&gt;&lt;br /&gt;For Developer (Design Time) :&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="font-size:130%;"&gt;if (System.ComponentModel.LicenseManager.CurrentContext.UsageMode ==&lt;br /&gt;System.ComponentModel.LicenseUsageMode.Designtime)&lt;br /&gt;      {&lt;br /&gt;          throw new System.Exception("Design Time License Required");&lt;br /&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;For run time :&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;if (System.ComponentModel.LicenseManager.CurrentContext.UsageMode == System.ComponentModel.LicenseUsageMode.Runtime)&lt;br /&gt;         {&lt;br /&gt;             throw new System.Exception("Run Time License Required");&lt;br /&gt;         }&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;For more details you can refer to these links :&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.developer.com/net/net/article.php/11087_3074001_1/Applications-Licensing-using-the-NET-Framework.htm"&gt;http://www.developer.com/net/net/article.php/11087_3074001_1/Applications-Licensing-using-the-NET-Framework.htm&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/fe8b1eh9.aspx"&gt;http://msdn.microsoft.com/en-us/library/fe8b1eh9.aspx&lt;/a&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/7966116666272165780-5078504907147955940?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/5078504907147955940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=5078504907147955940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/5078504907147955940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/5078504907147955940'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/09/net-licensing.html' title='.NET Licensing'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-9172862217791457391</id><published>2009-09-04T20:23:00.000-07:00</published><updated>2009-09-04T20:32:02.236-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><title type='text'>How to display your web site logo on the address bar and in the favorites list</title><content type='html'>Source : &lt;a href="http://www.chami.com/tips/internet/110599I.html"&gt;http://www.chami.com/tips/internet/110599I.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Want to make your web site standout in crowded favorites lists in browsers and address bars? How about displaying your logo next to links to your site. &lt;div&gt; &lt;/div&gt;First, you have to create a logo for your site; a very tiny logo to be specific. The size of the logo should be 16x16 pixels and it should be saved as a Windows icon file (logo.ico for example). If your image editor doesn't support saving files in Windows icon format, you can use the following online tool or download an icon editor from a &lt;a href="http://www.chami.com/tips/windows/012897W.html" title="Still looking for that special Windows program? Here's a list of software archives to get started with your search."&gt;shareware site&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Once you have an icon file with your logo, you're ready to take the final step. Following methods will work in Explorer 5.x and higher without having any negative effects on other browsers. &lt;div&gt; &lt;/div&gt; &lt;strong&gt;Method 1&lt;/strong&gt; &lt;dl&gt;&lt;dd&gt;This is the easiest method to implement and it will work regardless of the particular page on your site users choose to add to their favorites list. Don't worry if you don't have access to your web site root; take a look at the next method. &lt;div&gt; &lt;/div&gt;If you have access to the root of your web site, simply save your icon file as "favicon.ico" there. For example, if your web site is "www.chami.com", your icon file should be available at "www.chami.com/favicon.ico". The web browser will look for favicon.ico whenever your site is added to the favorites list and if it is found at the root of your web site, the icon will appear next to the link to your site. &lt;/dd&gt;&lt;/dl&gt;  &lt;div&gt; &lt;/div&gt; &lt;strong&gt;Method 2&lt;/strong&gt; If you don't have access to the root of your web site, you have to add the following tag to your web page so that the browser will know where to look for your icon. Unlike before, this time you can save the icon under any name ending with ".ico" We'll use the name "logo.ico" and assume that your web site is under the directory "~your_directory".&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;link rel="SHORTCUT ICON" href="/%7Eyour_directory/logo.ico"&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Above tag should be inserted in-between the &lt;span class="hk22"&gt;&lt;/span&gt; and &lt;span class="hk22"&gt;&lt;/span&gt; tags.&lt;br /&gt;&lt;div&gt; &lt;/div&gt; By the way, you can specify multiple logos for multiple pages using the second method. Simply save your icons using unique names, such as logo1.ico, logo2.ico, logo3.ico for example, and replace "logo.ico" in the above HTML code with the name of the icon you want to use for any particular page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-9172862217791457391?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/9172862217791457391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=9172862217791457391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/9172862217791457391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/9172862217791457391'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/09/how-to-display-your-web-site-logo-on.html' title='How to display your web site logo on the address bar and in the favorites list'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-8118060678497055516</id><published>2009-08-01T07:48:00.000-07:00</published><updated>2009-08-01T07:49:41.218-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>innodb_file_per_table</title><content type='html'>&lt;span style=";font-family:Arial,Helvetica;font-size:78%;"  &gt;&lt;i&gt;&lt;b&gt;innodb_file_per_table&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Source : http://capttofu.livejournal.com/11791.html&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In a previous post, I was trying to figure out the most optimal way to switch from two large innodb table space files to using innodb_file_per_table to take advantage of some of the benefits of this setting. I had one part of it solved, which was to stop MySQL, add innodb_file_per_table to the my.cnf, then restart, perform a "no-op" alter of "ALTER TABLE t1 ENGINE=InnoDB" which would cause the table to be re-created an it's own .ibd file. The remaining problem was how to be able to resize the huge table space files after converting all the tables to a smaller size (in my case from 10GB to 10MB).&lt;br /&gt;&lt;br /&gt;Someone suggested a better way:&lt;br /&gt;&lt;br /&gt;1. Alter all innodb tables to MyISAM&lt;br /&gt;2. Stop the server&lt;br /&gt;3. Add innodb_file_per_table to my.cnf&lt;br /&gt;4. Change innodb_data_file_path to new settings (10MB tablespaces) in my.cnf&lt;br /&gt;5. Move all innodb files (logs, data) to a backup directory&lt;br /&gt;6. Restart MySQL&lt;br /&gt;7. Alter all tables converted to MyISAM back to InnoDB&lt;br /&gt;&lt;br /&gt;This works great! I think using ALTER vs. dumping the data is the fastest way, for me at least.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-8118060678497055516?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/8118060678497055516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=8118060678497055516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8118060678497055516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8118060678497055516'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/08/innodbfilepertable.html' title='innodb_file_per_table'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-4623945720547398359</id><published>2009-08-01T07:30:00.000-07:00</published><updated>2009-08-01T07:41:20.935-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>InnoDB Tablespace Size</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;InnoDB Tablespace Size&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Source :http://optimmysql.blogspot.com/2007/07/innodb-tablespace-size.html&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Unlike MyISAM where data for individual tables is stored in their respective files, InnoDB stores data in a tablespace. By default, there is one single tablespace and data of all the databases is stored in one file. This file has data dictionary, tables, as well as indexes in it. There is a global parameter &lt;span style="font-family:courier;"&gt;innodb_data_file_path&lt;/span&gt; that defines this tablespace file. It has a syntax like &lt;span style="font-family:courier;"&gt;ibdata1:256M:autoextend&lt;/span&gt;, this means at the beginning a file of size 256 MB will be created and then whenever the data size exceeds this, the file will be auto-extended. The &lt;span style="font-family:courier;"&gt;innodb_autoextend_increment&lt;/span&gt; variable defines in MB's that by how much each increment should be.  &lt;p&gt;Let's see how well can we play around:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;strong&gt;Inserts:&lt;/strong&gt; Suppose you have too many inserts and InnoDB is extending the file too frequently. It makes sense to increase the value of &lt;span style="font-family:courier;"&gt;innodb_autoextend_increment.&lt;/span&gt; Say we increase it to 16MB, then obviously the number of attempts to autoextend tablespace comes down by a factor of 2, hence performance. But beware before you take it too easy and increase the value too much. There is a big trap, we will come to it shortly. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Deletes: &lt;/strong&gt;Here is the trap. You have a 10 GB tablespace (after too many autoextends), delete some 5 GB data (data + indexes) and think now the tablespace is 5 GB. Wrong, InnoDB doesn't have the notion of giving back space to the file system. Though, it will make sure to use the freed up space for further inserts. So, this method directly cannot be used to free disk space. So, in case you have data which you can get rid of, get rid of quickly before the next autoextend is done. One thing that can be done to reclaim space is to use &lt;span style="font-family:courier;"&gt;OPTIMIZE TABLE&lt;/span&gt; frequently enough on tables that have high volume of inserts and deletes. But again remember, MySQL locks a table during the time &lt;span style="font-family:courier;"&gt;OPTIMIZE TABLE&lt;/span&gt; is running. Another Gotcha, right? &lt;span style="font-family:courier;"&gt;OPTIMIZE TABLE&lt;/span&gt; does several other things for which it makes sense to run it, though not that frequently. I will be posting a blog soon on it.  &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Separate Files per Table: &lt;/strong&gt;InnoDB provides this option where data (data + indexes) for each table can be stored in a separate file through a global variable &lt;span style="font-family:courier;"&gt;innodb_file_per_table&lt;/span&gt;. Though still a shared tablespace will be created for storing the likes of data dictionary et al. But still this approach makes sense as having data in small chunks (separate files) will improve the scope of managing them well and may increase performance in general. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Fixed Tablespace size: &lt;/strong&gt;One way to work around with the tablespace file size problems is to fix the tablespace size (remove autoextend) to an extrapolated value. So, when you hit the limit, you know it is time to cleanup. This is not that viable with all the applications, as extrapolation is not always possible. And also it increases the complexity of the application, which then needs to take care of all such error conditions and not lose any data.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;So, where does this end? You need to figure out what your data is, how critical it is, what all you want to do with it, what all you want your data to do. Then take some of the following steps.&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;strong&gt;Move to MyISAM: &lt;/strong&gt;For all the tables (or even databases), for which you feel data is not that critical to have transactions et al, move them to MyISAM. So, for the problem we can't solve completely, we destroy the problem. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Separate Tablespace: &lt;/strong&gt;Its a lot easier to maintain 10 small problems than a single big one.  &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Delete data/OPTIMIZE TABLE: &lt;/strong&gt;Figure out how soon you can get rid of data. You actually don't need to delete data as it is. Transfer it to a MyISAM table, compress the file and archive it somewhere else and then delete it from the main table. Likewise there are many ways to do it. Run &lt;span style="font-family:courier;"&gt;OPTIMIZE TABLE&lt;/span&gt; frequently enough so that it doesn't bother your reads and writes too much and also it doesn't take too much time to run. &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Hope this blog was helpful to you. Keep posting your comments.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-4623945720547398359?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/4623945720547398359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=4623945720547398359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4623945720547398359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4623945720547398359'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/08/innodb-tablespace-size.html' title='InnoDB Tablespace Size'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-7389288798733608520</id><published>2009-07-23T19:13:00.000-07:00</published><updated>2009-07-23T19:15:32.283-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C# Clone Image</title><content type='html'>Aku tengah buat image processing program ada masalah masa clone image. Image yang dah asal yang dah diclone dan diproses turut menjejaskan image asal. Jadi aku cari jumpa code ni :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public static Image cloneImage(Image srcImage){&lt;br /&gt;            if (srcImage == null) return null;&lt;br /&gt;            Bitmap copy = new Bitmap(srcImage);&lt;br /&gt;            using (Graphics g = Graphics.FromImage(copy))&lt;br /&gt;            {&lt;br /&gt;                g.DrawImage(srcImage,new Rectangle(0, 0, srcImage.Width, srcImage.Height));&lt;br /&gt;            }&lt;br /&gt;            return copy;&lt;br /&gt;        }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-7389288798733608520?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/7389288798733608520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=7389288798733608520' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/7389288798733608520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/7389288798733608520'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/07/aku-tengah-buat-image-processing.html' title='C# Clone Image'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-7133704135769112136</id><published>2009-07-14T08:40:00.000-07:00</published><updated>2009-07-14T08:47:44.137-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Compact Framework'/><title type='text'>Compact Framework Load Image</title><content type='html'>Biasanya aku guna image.fromFile je untuk load image, tapi tak de pulak dalam compact framework. Kena pakai bitmap (ada 2-3 cara). Aku tunjuk satu je la ek.&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;private void loadLogo() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;String logoFile = Utils.getCurrentDirectory() + "\\logo.jpg";&lt;br /&gt;&amp;nbsp;&amp;nbsp;System.IO.FileStream fs=new      System.IO.FileStream(logoFile,System.IO.FileMode.Open);&lt;br /&gt;&amp;nbsp;&amp;nbsp;picLogo.Image = new Bitmap(fs);&lt;br /&gt;&amp;nbsp;&amp;nbsp;fs.Close();&lt;br /&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-7133704135769112136?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/7133704135769112136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=7133704135769112136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/7133704135769112136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/7133704135769112136'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/07/biasanya-aku-guna-image.html' title='Compact Framework Load Image'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-7170982432286082066</id><published>2009-07-14T04:25:00.000-07:00</published><updated>2009-07-14T04:37:54.678-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Compact Framework'/><title type='text'>Compact Framework Get Current Directory</title><content type='html'>Aku tengah buat projek PDA. By default compact framework tak support cara untuk dapatkan current directory guna System.IO. Kena guna cara lain, seperti di bawah :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;System.IO.Path.GetDirectoryName(&lt;br /&gt;System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-7170982432286082066?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/7170982432286082066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=7170982432286082066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/7170982432286082066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/7170982432286082066'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/07/compact-framework-get-current-directory.html' title='Compact Framework Get Current Directory'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-8553533858564351781</id><published>2009-02-25T05:24:00.000-08:00</published><updated>2009-02-25T05:33:13.964-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>PHP Exec function Alternative</title><content type='html'>Dalam projek linux aku ni, aku nak exec command linux untuk control proses x dapat nak buat sebab masalah dengan php exec function. Dia run  tapi disebabkan priviledge problem x jadi2 aku buat. Habis aku configure safe_mode option kat php semua x jadi.&lt;br /&gt;&lt;br /&gt;Last aku teringat Jimin cerita dia buat VPN pakai SSH. Aku pun try. Alhamdulillah jadik.&lt;br /&gt;Script akan sentiasa looping.&lt;br /&gt;Koronologinya :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Start loop&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ada satu script yang sentiasa monitor file command &lt;/li&gt;&lt;li&gt;kalau file tu ada, dia exec&lt;br /&gt;&lt;/li&gt;&lt;li&gt;     sleep 2 saat&lt;/li&gt;&lt;li&gt;     delete file tersebut lepas dia execute&lt;/li&gt;&lt;li&gt;kalau x de file tu,  sleep 2 saat&lt;/li&gt;&lt;li&gt;Loop lagi&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tammat.&lt;/li&gt;&lt;/ol&gt;Contohnya mcm kat bawah :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;while [ 1 -ne 2 ]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  if [ -f /opt/lampp/htdocs/ipvision-client/cmd.sh ]; then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        /bin/chmod 777 /opt/lampp/htdocs/ipvision-client/cmd.sh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        /bin/sh /opt/lampp/htdocs/ipvision-client/cmd.sh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        sleep 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        /bin/rm /opt/lampp/htdocs/ipvision-client/cmd.sh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  fi&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  sleep 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;done&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;font-size:130%;" &gt;p/s : boleh pendekkan lagi script ni.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-8553533858564351781?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/8553533858564351781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=8553533858564351781' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8553533858564351781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8553533858564351781'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/02/php-exec-function-alternative.html' title='PHP Exec function Alternative'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-6529758599952081958</id><published>2009-02-25T04:37:00.000-08:00</published><updated>2009-02-25T04:45:01.510-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Linux auto reboot on Kernel panic</title><content type='html'>Tertinggal henset kat rumah hari ni.&lt;br /&gt;Takpe, kerja diteruskan. Aku tengah buat projek on Linux on tiny board.&lt;br /&gt;Boot pakai usb. Kadang2 terjadi kernel panic. Carik punya jumpa cara yang simple.&lt;br /&gt;&lt;br /&gt;pada bootloader config just tambah satu lagi paramter panic=5 , untuk saat. Nak lebih tambah sendirik. Hemo..hemoo..&lt;br /&gt;&lt;br /&gt;Contonhnya macam kat bawah (sysLinux)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LABEL LINUX&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;KERNEL linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;APPEND root=/dev/sda3 rootdelay=10 panic=5&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-6529758599952081958?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/6529758599952081958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=6529758599952081958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6529758599952081958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6529758599952081958'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/02/linux-auto-reboot-on-kernel-panic.html' title='Linux auto reboot on Kernel panic'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-9075903564873281062</id><published>2009-02-09T20:10:00.001-08:00</published><updated>2009-02-09T20:18:06.743-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT HIbernate Native Query</title><content type='html'>Dalam aku dok try GWT + RPC + Hibernate, aku try la guna JPA (Java Persistent API) untuk manage database connection. Aku pakai EntityManager dengan annotation @persistentcontext.&lt;br /&gt;Yang semua ok tapi untuk nativeQuery tanpa class object diberi aku dapat output yang berbeza.&lt;br /&gt;&lt;br /&gt;Untuk toplink/EclipseLink : aku dapat sebagai List.&lt;br /&gt;Pakai print toString outputnya = [[value1,value2],[value1,value2]]&lt;br /&gt;&lt;br /&gt;Untuk yang lain (Hibernate/OpenJPA,KODO) : Ouputnya adalah object[][]&lt;br /&gt;Pakai print toString outputnya = Object[][];&lt;br /&gt;&lt;br /&gt;Contohnya macam kat bawah ni.&lt;br /&gt;&lt;br /&gt;public List getSQLQuery(String sql) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Query query = em.createNativeQuery(sql);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return query.getResultList();&lt;br /&gt; }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-9075903564873281062?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/9075903564873281062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=9075903564873281062' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/9075903564873281062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/9075903564873281062'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/02/gwt-hibernate-native-query.html' title='GWT HIbernate Native Query'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-7828648516125425248</id><published>2009-02-09T20:04:00.000-08:00</published><updated>2009-02-09T20:08:53.379-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT Custom Seriallizable HashTable</title><content type='html'>Untuk memudahkan data exchange antara server &amp;amp; client serta memudahkan client mencapai data, aku create satu seriallizable class ala hashtable. Pengguna boleh panggil data guna index atau key. Senang bukan ?&lt;br /&gt;&lt;br /&gt;Anyway seperti, code dia ada kat bawah ni.&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * To change this template, choose Tools | Templates&lt;br /&gt; * and open the template in the editor.&lt;br /&gt; */&lt;br /&gt;package my.com.client;&lt;br /&gt;&lt;br /&gt;import com.gwtext.client.data.BooleanFieldDef;&lt;br /&gt;import com.gwtext.client.data.FloatFieldDef;&lt;br /&gt;import com.gwtext.client.data.IntegerFieldDef;&lt;br /&gt;import com.gwtext.client.data.Record;&lt;br /&gt;import com.gwtext.client.data.RecordDef;&lt;br /&gt;import com.gwtext.client.data.StringFieldDef;&lt;br /&gt;import java.io.Serializable;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author Peyo&lt;br /&gt; */&lt;br /&gt;public class MyHashTable implements Serializable {&lt;br /&gt;&lt;br /&gt;    private ArrayList alValue = new ArrayList();&lt;br /&gt;    private ArrayList alKeys = new ArrayList();&lt;br /&gt;&lt;br /&gt;    public MyHashTable() {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public MyHashTable(List list, Object[] keys) {&lt;br /&gt;        for (int i = 0; i &lt; list.size(); i++) {&lt;br /&gt;            for (int k = 0; k &lt; keys.length; k++) {&lt;br /&gt;                add(keys[k], list.get(k));&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public MyHashTable(Record record, RecordDef recordDef) {&lt;br /&gt;        alValue.clear();&lt;br /&gt;        alKeys.clear();&lt;br /&gt;        for (int i = 0; i &lt; recordDef.getFields().length; i++) {&lt;br /&gt;            String fieldname = recordDef.getFields()[i].getName();&lt;br /&gt;            if (recordDef.getFields()[i].getClass().equals(StringFieldDef.class)) {&lt;br /&gt;                String value = record.getAsString(fieldname);&lt;br /&gt;                add(fieldname, value);&lt;br /&gt;            } else if (recordDef.getFields()[i].getClass().equals(IntegerFieldDef.class)) {&lt;br /&gt;                Integer value = record.getAsInteger(fieldname);&lt;br /&gt;                add(fieldname, value);&lt;br /&gt;            } else if (recordDef.getFields()[i].getClass().equals(FloatFieldDef.class)) {&lt;br /&gt;                Float value = record.getAsFloat(fieldname);&lt;br /&gt;                add(fieldname, value);&lt;br /&gt;            } else if (recordDef.getFields()[i].getClass().equals(BooleanFieldDef.class)) {&lt;br /&gt;                Object value = record.getAsBoolean(fieldname);&lt;br /&gt;            } else {&lt;br /&gt;                Object value = record.getAsObject(fieldname);&lt;br /&gt;                add(fieldname, value);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public final ArrayList getKeys() {&lt;br /&gt;        return alKeys;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Object getValue(&lt;br /&gt;            Object key) {&lt;br /&gt;        Integer index = checkKeyExist(key);&lt;br /&gt;        if (index &gt; -1) {&lt;br /&gt;            return alValue.get(index);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        return null;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Object getValue(Integer index) {&lt;br /&gt;        return alValue.get(index);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Integer getCount() {&lt;br /&gt;        return Integer.valueOf(alKeys.size());&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void add(Object key, Object object) {&lt;br /&gt;        alValue.add(object);&lt;br /&gt;        alKeys.add(key);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void updateItem(Object key, Object value) {&lt;br /&gt;        int index = checkKeyExist(key);&lt;br /&gt;        if (index &gt; -1) {&lt;br /&gt;            alValue.set(index, value);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void deleteItem(Object key) {&lt;br /&gt;        int index = checkKeyExist(key);&lt;br /&gt;        if (index &gt; -1) {&lt;br /&gt;            alValue.remove(index);&lt;br /&gt;            alKeys.remove(index);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;    private Integer checkKeyExist(Object key) {&lt;br /&gt;        for (int i = 0; i &lt;&lt;br /&gt;                alKeys.size(); i++) {&lt;br /&gt;            if (alKeys.get(i).equals(key)) {&lt;br /&gt;                return Integer.valueOf(i);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;        return Integer.valueOf(-1);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Object[] toArray() {&lt;br /&gt;        return alValue.toArray();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Record toRecord(&lt;br /&gt;            RecordDef recordDef) {&lt;br /&gt;        Object[] obj = new Object[recordDef.getFields().length];&lt;br /&gt;        for (int i = 0; i &lt;&lt;br /&gt;                recordDef.getFields().length; i++) {&lt;br /&gt;            obj[i] = getValue(recordDef.getFields()[i].getName());&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        Record record = recordDef.createRecord(obj);&lt;br /&gt;        return record;&lt;br /&gt;    }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-7828648516125425248?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/7828648516125425248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=7828648516125425248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/7828648516125425248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/7828648516125425248'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/02/gwt-custom-seriallizable-hashtable.html' title='GWT Custom Seriallizable HashTable'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-1250922857730999978</id><published>2009-02-09T18:07:00.001-08:00</published><updated>2009-02-09T18:15:16.571-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT RPC Custom Service Manager</title><content type='html'>Untuk memudahkan aku access kepada service GWT yang telah aku buat, aku create satu Service Manager class untuk manage service-service yang ada. Jadi x perlua setiap kali nak guna service tu declare satu persatu. Call aje, senang.&lt;br /&gt;&lt;br /&gt;Actually, yang bahagian if else tu patutnya x ada, tapi sebab benda ni x stable aku terpaksa juga buat.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;package my.com.client.common;&lt;br /&gt;&lt;br /&gt;import com.google.gwt.core.client.GWT;&lt;br /&gt;import com.google.gwt.user.client.rpc.ServiceDefTarget;&lt;br /&gt;import my.com.client.GeneralSettings.GeneralSettingsService;&lt;br /&gt;import my.com.client.GeneralSettings.GeneralSettingsServiceAsync;&lt;br /&gt;import my.com.client.lecturer.LecturerService;&lt;br /&gt;import my.com.client.lecturer.LecturerServiceAsync;&lt;br /&gt;import my.com.client.login.LoginService;&lt;br /&gt;import my.com.client.login.LoginServiceAsync;&lt;br /&gt;import my.com.client.semester.SemesterService;&lt;br /&gt;import my.com.client.semester.SemesterServiceAsync;&lt;br /&gt;import my.com.client.subject.SubjectService;&lt;br /&gt;import my.com.client.subject.SubjectServiceAsync;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author Peyo&lt;br /&gt; */&lt;br /&gt;public class ServiceManager {&lt;br /&gt;&lt;br /&gt;    public static LoginServiceAsync getLoginService() {&lt;br /&gt;        return (LoginServiceAsync) getService(LoginService.class,"loginservice");&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static SubjectServiceAsync getSubjectService() {&lt;br /&gt;        return (SubjectServiceAsync) getService(SubjectService.class,"subjectservice");&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static GeneralSettingsServiceAsync getGeneralSettingService() {&lt;br /&gt;        return (GeneralSettingsServiceAsync) getService(GeneralSettingsService.class,"generalsettingsservice");&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static SemesterServiceAsync getSemesterService(){&lt;br /&gt;        return (SemesterServiceAsync) getService(SemesterService.class,"semesterservice");&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static LecturerServiceAsync getLecturerService(){&lt;br /&gt;        return (LecturerServiceAsync) getService(LecturerService.class,"lecturerservice");&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private static Object getService(Class myclass,String relativeurl) {&lt;br /&gt;        Object service=null;&lt;br /&gt;        if (relativeurl.equals("subjectservice")) {&lt;br /&gt;            service = GWT.create(SubjectService.class);&lt;br /&gt;        }else if(relativeurl.equals("loginservice")){&lt;br /&gt;            service = GWT.create(LoginService.class);&lt;br /&gt;        }else if(relativeurl.equals("generalsettingsservice")){&lt;br /&gt;            service = GWT.create(GeneralSettingsService.class);&lt;br /&gt;        }else if(relativeurl.equals("semesterservice")){&lt;br /&gt;            service = GWT.create(SemesterService.class);&lt;br /&gt;        }else if(relativeurl.equals("lecturerservice")){&lt;br /&gt;            service = GWT.create(LecturerService.class);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        //service = GWT.create(myclass);&lt;br /&gt;        ServiceDefTarget endpoint = (ServiceDefTarget) service;&lt;br /&gt;        String moduleRelativeURL = GWT.getModuleBaseURL() + relativeurl;&lt;br /&gt;        endpoint.setServiceEntryPoint(moduleRelativeURL);&lt;br /&gt;        return service;&lt;br /&gt;    }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-1250922857730999978?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/1250922857730999978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=1250922857730999978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/1250922857730999978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/1250922857730999978'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/02/gwt-rpc-custom-service-manager.html' title='GWT RPC Custom Service Manager'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-4980303241398084115</id><published>2009-02-09T17:38:00.000-08:00</published><updated>2009-02-09T18:02:10.827-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT Custom Exception</title><content type='html'>Masa guna gwt-rpc-java servlet aku kena buat server side error handling.&lt;br /&gt;Untuk membolehkan exception tu boleh cross antara server side &amp;amp; client side aku kena buat satu exception class aku sendiri yang extend dari serializableException.&lt;br /&gt;Code dia ada kat bawah tu aku pastekan.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; * To change this template, choose Tools | Templates&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; * and open the template in the editor.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;package my.com.client.common;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;import com.google.gwt.user.client.rpc.SerializationException;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; * @author Peyo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;public class MyException extends SerializationException {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    public MyException() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        super();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    public MyException(String string) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        super(string);       &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    public MyException(Throwable cause) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;         super(cause);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    public MyException(String string,Throwable cause) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        super(string, cause);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-4980303241398084115?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/4980303241398084115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=4980303241398084115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4980303241398084115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/4980303241398084115'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2009/02/gwt-custom-exception.html' title='GWT Custom Exception'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-3337947205574290947</id><published>2008-12-30T23:27:00.000-08:00</published><updated>2008-12-30T23:31:25.219-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QR Code'/><title type='text'>QR Code Testing Updates</title><content type='html'>Aku baru je test satu lagi projek QRCode, ZXing. Actually projek ni adalah projek untuk baca semua jenis barcode. Aku dah test dengan beberapa jenis QRCode yang aku dah generate. Bagusnya dia boleh detect QRCode dalam semua arah walaupun telah dirotate.&lt;br /&gt;&lt;br /&gt;Dalam post aku sebelum ni, projek tu x boleh recognize kalau QRcode tu dah dirotate beberapa degree.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Kalau nak try, boleh gi web ni. Ader link untuk online encode &amp;amp; decode.&lt;br /&gt;&lt;a href="http://code.google.com/p/zxing/"&gt;http://code.google.com/p/zxing/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-3337947205574290947?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/3337947205574290947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=3337947205574290947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3337947205574290947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/3337947205574290947'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2008/12/qr-code-testing-updates.html' title='QR Code Testing Updates'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-6863951298104577128</id><published>2008-12-29T02:51:00.000-08:00</published><updated>2008-12-29T08:50:18.588-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT Ext Grid Remote Paging + PHP JSON</title><content type='html'>Aku tengah belaja cara nak pakai Google Web Toolkit sendiri lepas Jimin tunjuk kat aku projek dia yang pakai GWT ni. Maklumat lanjut pasal GWT ni boleh rujuk kat sini.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/webtoolkit/"&gt;http://code.google.com/webtoolkit/&lt;br /&gt;&lt;/a&gt;&lt;a href="http://extjs.com/"&gt;http://extjs.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gwt-ext.com/"&gt;http://www.gwt-ext.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/cypal-studio/"&gt;http://code.google.com/p/cypal-studio/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Masa aku try, aku berdepan dengan satu masalah. Macam mana nak buat remote paging &amp;amp; sort remotely pakai JSON. Dekat sehari aku try baru berjaya. Masa aku deploy error ada popup message Error:Expected";". Rupanya, GWT ni dia pakai Callback untuk JSON dia.&lt;br /&gt;&lt;br /&gt;online demo kat sini&lt;br /&gt;&lt;a href="http://www.gwt-ext.com/demo/#remotePagingGrid"&gt;http://www.gwt-ext.com/demo/#remotePagingGrid&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Full URL yang dipanggil oleh GWT setiap kali ke page seterusnya adalah seperti di bawah:&lt;br /&gt;&lt;a href="http://extjs.com/forum/topics-browse-remote.php?start=25&amp;amp;limit=25&amp;amp;sort=lastpost&amp;amp;dir=DESC&amp;amp;_dc=1203168761468&amp;amp;callback=stcCallback1002"&gt;http://extjs.com/forum/topics-browse-remote.php?start=25&amp;amp;limit=25&amp;amp;sort=lastpost&amp;amp;dir=DESC&amp;amp;_dc=1203168761468&amp;amp;callback=stcCallback1002&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Kalau dalam PHP kena buat macama ni.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   &lt;?php&lt;br /&gt; $arr = array('totalCount'=&gt;"4",'topics'=&gt;$data);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      $jsonstr= json_encode($arr);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      print $_GET['callback']."(".$jsonstr.");";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;?&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-6863951298104577128?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/6863951298104577128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=6863951298104577128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6863951298104577128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6863951298104577128'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2008/12/gwt-ext-grid-remote-paging.html' title='GWT Ext Grid Remote Paging + PHP JSON'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-8951311283272340642</id><published>2008-12-04T01:23:00.001-08:00</published><updated>2008-12-04T01:48:41.334-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Encryption'/><title type='text'>AES Random IV</title><content type='html'>Sebenarnya lama dah aku nak try buat random IV untuk Rjindael Encryption ni. Actually Jimin pernah tunjuk kat aku tapi tu dah setahun yang lepas rasanya. Mostly, sample kat internet dia buat ambik dari Hash (SHA atau MD5)  dari salt. 32 byte pakai untuk key , 16 byte pakai untuk IV.&lt;br /&gt;&lt;br /&gt;Semalam aku sempat try sambil2 aku tolong staf aku buat secure config.&lt;br /&gt;&lt;br /&gt;Apa kejadahnya IV ni?&lt;br /&gt;&lt;br /&gt;IV ni sebenarnya adalah Initiallized Vector. IV ni akan menentukan output encryption. kalau pakai statik IV, password yang sama dan data yang sama, hasil output akan konsisten je setiap kali encrypt. Kalau pakai random IV ni, password sama dan data yang sama, hasil outputnya akan berbeza setiap kali encrypt. Jadi, ini menjadikan ia lebih susah untuk dihack(aku rasala).  Tambah2 lagi kalau digunakan dalam watermarking atau steganography.&lt;br /&gt;&lt;br /&gt;Nak cerita lebih2 pun payah, takut x paham pulak. aku letak code dia kat sini. Korang try la sendiri kalau nak la. X nak sudah..... hahahhahah...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;Imports System.Security.Cryptography&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Imports System.IO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Public Class clsAESJCE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Public Shared Function Encrypt(ByVal data() As Byte, ByVal key As String) As Byte()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim ms As New MemoryStream&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim AES As New System.Security.Cryptography.RijndaelManaged&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim SHA As New SHA512Managed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim keybyte() As Byte = System.Text.ASCIIEncoding.ASCII.GetBytes(key.ToCharArray)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim HashByte() As Byte = SHA.ComputeHash(keybyte)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim keys(31) As Byte&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim IV(15) As Byte&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        System.Array.Copy(HashByte, 0, keys, 0, 32)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        'System.Array.Copy(HashByte, 32, IV, 0, 16)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        AES.KeySize = 256&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        'AES.BlockSize = 256&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        AES.Mode = CipherMode.CBC&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        AES.Padding = PaddingMode.PKCS7&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        AES.GenerateIV()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim newdata() As Byte&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Try&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            Dim objCryptoStream As CryptoStream&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            objCryptoStream = New CryptoStream(ms, AES.CreateEncryptor(keys, IV), CryptoStreamMode.Write)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            objCryptoStream.Write(data, 0, data.Length)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            objCryptoStream.FlushFinalBlock()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            newdata = ms.ToArray()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            objCryptoStream.Close()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            ms.Close()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Catch ex As Exception&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        End Try&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Return newdata&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    End Function&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Public Shared Function Decrypt(ByVal data() As Byte, ByVal key As String) As Byte()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim ms As New MemoryStream(data)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim AES As New System.Security.Cryptography.RijndaelManaged&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim SHA As New SHA512Managed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim keybyte() As Byte = System.Text.ASCIIEncoding.ASCII.GetBytes(key.ToCharArray)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim HashByte() As Byte = SHA.ComputeHash(keybyte)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim keys(31) As Byte&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim IV(15) As Byte&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        System.Array.Copy(HashByte, 0, keys, 0, 32)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        'System.Array.Copy(HashByte, 32, IV, 0, 16)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        AES.KeySize = 256&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        'AES.BlockSize = 256&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        AES.Mode = CipherMode.CBC&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        AES.Padding = PaddingMode.PKCS7&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        AES.GenerateIV()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim newdata(data.Length - 1) As Byte&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Dim iRead As Integer = -1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Try&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            Dim objCryptoStream As CryptoStream&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            objCryptoStream = New CryptoStream(ms, AES.CreateDecryptor(keys, IV), CryptoStreamMode.Read)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            iRead = objCryptoStream.Read(newdata, 0, newdata.Length)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            objCryptoStream.FlushFinalBlock()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            objCryptoStream.Close()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            ms.Close()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Catch ex As Exception&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        End Try&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        ReDim data(iRead - 1)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        System.Array.Copy(newdata, 0, data, 0, iRead)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Return data&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    End Function&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;End Class&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-8951311283272340642?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/8951311283272340642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=8951311283272340642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8951311283272340642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8951311283272340642'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2008/12/aes-random-iv.html' title='AES Random IV'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-2943920945983876014</id><published>2008-11-20T01:50:00.000-08:00</published><updated>2009-11-16T14:40:15.606-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='QR Code'/><title type='text'>QR Code</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KzyYoK-JcyM/SSU3YCS0ghI/AAAAAAAAAAo/MT2993VRPhU/s1600-h/180px-WikiQRCode.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 180px; height: 180px;" src="http://4.bp.blogspot.com/_KzyYoK-JcyM/SSU3YCS0ghI/AAAAAAAAAAo/MT2993VRPhU/s320/180px-WikiQRCode.png" alt="" id="BLOGGER_PHOTO_ID_5270679824979231250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Masa aku tengah carik2 paper on Wavelet. Mojette Transform &amp;amp; watermarking aku terbaca pasal QR Code. Actually dia lebih kurang macam project Optar (lihat post aku sebelum ni).&lt;br /&gt;&lt;br /&gt;Actually QR Code ni adalah 2D barcode. Dicipta oleh &lt;span style="font-weight: bold; font-style: italic;"&gt;Denso Wave Incorporated&lt;/span&gt; dan banyak digunakan dalam industri di seluruh dunia. Lebihnya QR Code ni dia laju, kapasiti besar dan saiznya yang lebih kecil berbanding dengan teknik barcode yang lain.&lt;br /&gt;&lt;br /&gt;Aku tengah test dengan beberapa keadaan untuk test ketahanan &amp;amp; charateristic QR Code ni. Harap2 aku boleh implement dalam projek watermarking aku nanti.&lt;br /&gt;&lt;br /&gt;Nak tahu lebih lanjut baca kat sini :&lt;br /&gt;&lt;a href="http://code.google.com/p/zxing/"&gt;http://code.google.com/p/zxing/&lt;/a&gt; (Open Source Java Project)&lt;br /&gt;&lt;a href="http://www.denso-wave.com/qrcode/qrgene1-e.html"&gt;http://www.denso-wave.com/qrcode/qrgene1-e.html&lt;/a&gt;   (Denso Wave Inc.)&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/cs/qrcode.aspx"&gt;http://www.codeproject.com/KB/cs/qrcode.aspx&lt;/a&gt;           (Open Source C# project)&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/QR_Code"&gt;http://en.wikipedia.org/wiki/QR_Code&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-2943920945983876014?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/2943920945983876014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=2943920945983876014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/2943920945983876014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/2943920945983876014'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2008/11/masa-aku-tengah-carik2-paper-on-wavelet.html' title='QR Code'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KzyYoK-JcyM/SSU3YCS0ghI/AAAAAAAAAAo/MT2993VRPhU/s72-c/180px-WikiQRCode.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-6619842324317873379</id><published>2008-11-19T04:39:00.000-08:00</published><updated>2008-11-20T01:49:51.661-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mathematic'/><title type='text'>Covariance matrix</title><content type='html'>Prof Christian Bharat, dari Antropolis,Nice,France datang buat lawatan kerja kat opis aku. Prof Marzuki mintak dia consult researchers kat opis aku (CAIRO) on projek Kenalkayu.&lt;br /&gt;&lt;br /&gt;Aku try nak buat program untuk kurangkan features untuk training database kenalkayu (ni actually hasil kajian Prof Christian tu la). Nak buat benda ni kena pakai matrix. Tiba-tiba aku check x de la pulak function Covariance dalam library matrix tu. Ahh... sudah. Jenus nak kena carik pulak.  Dalam matlab satu baris je &lt;span style="font-style: italic;"&gt;Cov(M)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Jadi aku pun berhempas pulas la dengan Due(email glamor dia =MrUTM) nak buat benda ni. Akhirnya berjaya jugak.Ni aku pastekan code dalam VB.NET yang aku buat.&lt;br /&gt;&lt;br /&gt;          &lt;span style="font-family:courier new;"&gt;Private Function Covariance(ByVal M As CSML.Matrix, Optional ByVal N As Integer = 0)&lt;br /&gt;        Dim iRow As Integer = M.Size(0)&lt;br /&gt;        Dim iCol As Integer = M.Size(1)&lt;br /&gt;&lt;br /&gt;        Dim i, j As Integer&lt;br /&gt;        'Console.WriteLine("Mean")&lt;br /&gt;        'Dim MeanMat As New CSML.Matrix(Mean)&lt;br /&gt;        'Console.WriteLine(MeanMat.ToString)&lt;br /&gt;        Dim MeanMat As CSML.Matrix = Mean(M)&lt;br /&gt;        Me.PrintMatrixSize("Covariance Mean=", MeanMat)&lt;br /&gt;        Me.PrintMatrix("Covariance Mean=", MeanMat)&lt;br /&gt;&lt;br /&gt;        Dim A As New CSML.Matrix&lt;br /&gt;        For i = 1 To iRow&lt;br /&gt;            Dim B As CSML.Matrix = M.Row(i) - MeanMat.Row(1)&lt;br /&gt;            A.InsertRow(B, i)&lt;br /&gt;        Next&lt;br /&gt;        'Console.WriteLine(A.ToString)&lt;br /&gt;&lt;br /&gt;        Dim AT As CSML.Matrix = A.Transpose&lt;br /&gt;        Dim covMat As CSML.Matrix = AT * A&lt;br /&gt;&lt;br /&gt;        Dim divider As Integer = iRow - 1&lt;br /&gt;        If N = 1 Then&lt;br /&gt;            divider = iRow&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;        covMat = covMat / divider&lt;br /&gt;        'Console.WriteLine(covMat.ToString)&lt;br /&gt;        Return covMat&lt;br /&gt;    End Function&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Library matrix(C#) boleh download kat sini :&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/cs/CSML.aspx"&gt;http://www.codeproject.com/KB/cs/CSML.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;References :&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Covariance_matrix"&gt;http://en.wikipedia.org/wiki/Covariance_matrix&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-6619842324317873379?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/6619842324317873379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=6619842324317873379' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6619842324317873379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6619842324317873379'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2008/11/covariance-matrix.html' title='Covariance matrix'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-2228779044735693592</id><published>2008-11-04T21:59:00.000-08:00</published><updated>2008-11-04T22:18:26.207-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Artificial Intelligence'/><title type='text'>Dynamic Pattern Recognition : Temporal Planification of Classification Tools eFISH : Recognition of Fish Freshness</title><content type='html'>Hari ni Prof. Pierre Loonis dari Institut Sup´erieur de l’Automobile et des Transports - ISA, Universit ´e de Bourgogne datang bagi Talk sikit pasal Dynamic Pattern Recognition. Dia buat satu sistem untuk dapatkan tahap kesegaran ikan di pasar La Rochelle. 7 tahun dia buat research ni. Dia pakai HMM (Hidden Markov Model) + Fuzzy Petri Net. Menarik juga idea dia.&lt;br /&gt;&lt;br /&gt;Dia tinggalkan presentation dalam PC aku. Aku masukkan dalam blog ni. Kalau nak cari ada dalam blog.&lt;br /&gt;&lt;br /&gt;Kalau nak tengok presentation di ada kat sini,&lt;br /&gt;&lt;a href="http://sites.google.com/site/peyotest/file-c/utm-05nov2009.pdf?attredirects=0"&gt;http://sites.google.com/site/peyotest/file-c/utm-05nov2009.pdf?attredirects=0&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-2228779044735693592?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/2228779044735693592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=2228779044735693592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/2228779044735693592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/2228779044735693592'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2008/11/dynamic-pattern-recognition-temporal.html' title='Dynamic Pattern Recognition : Temporal Planification of Classification Tools eFISH : Recognition of Fish Freshness'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-6112602804152785386</id><published>2008-11-02T20:52:00.000-08:00</published><updated>2008-11-02T20:56:09.317-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source Projects'/><title type='text'>Twibright Optar</title><content type='html'>Jimin bagitau aku pasal projek Optar untuk OPTical ARchive. Menarik jugak benda ni boleh aku implement dalam watermarking. Source semua boleh download. Kalau ada masa aku nak port code dia ni ke C#. Senang aku nak pakai nanti.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ronja.twibright.com/optar/"&gt;http://ronja.twibright.com/optar/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-6112602804152785386?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/6112602804152785386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=6112602804152785386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6112602804152785386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/6112602804152785386'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2008/11/twibright-optar.html' title='Twibright Optar'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-1888923321910381554</id><published>2008-10-26T00:15:00.000-07:00</published><updated>2008-11-02T02:30:58.145-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>LIFO Alarm Processing</title><content type='html'>Sekarang aku tengah buat alarm processing untuk support LIFO data transaction. Ini bermakna alarm akan direkodkan tanpa mengira masa dihantar. Jadi setiap kali data dihantar ke server, kita perlu memproses dan membandingkan data yang terima dengan alarm yang telah ada di dalam database.&lt;br /&gt;&lt;br /&gt;Boleh tahan jugak memikirkannya. Tapi aku dah jumpa caranya. Nanti aku update post ni nanti dengan cara-cara aku buat.&lt;br /&gt;&lt;br /&gt;Seminggu kemudian ....&lt;br /&gt;&lt;br /&gt;aku dah siap buat LIFO alarm processing ni.&lt;br /&gt;&lt;br /&gt;Katakan kita ada table alarm yang mempunyai field seperti berikut :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;alarmid (auto increment)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;alarmcode&lt;/li&gt;&lt;li&gt;alamrmdatetime&lt;/li&gt;&lt;li&gt;rtuid&lt;/li&gt;&lt;li&gt;alarmofftime&lt;/li&gt;&lt;/ul&gt; Processing flownya macam ni:&lt;br /&gt;Kena ambil 1 alarm sebelum dan 1 selepas masa data diterima.&lt;br /&gt;&lt;table border="1"&gt;&lt;br /&gt; &lt;tr&gt;&lt;br /&gt;  &lt;td align="center"&gt;Sebelum&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;Selepas&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;Offtime=Set?&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;Current=Alarm?&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;Result&lt;/td&gt;&lt;br /&gt; &lt;/tr&gt;&lt;br /&gt; &lt;tr&gt;&lt;br /&gt;  &lt;td align="center"&gt;X&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;X&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;X&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="left"&gt;Create new alarm&lt;/td&gt;&lt;br /&gt; &lt;/tr&gt;&lt;br /&gt; &lt;tr&gt;&lt;br /&gt;  &lt;td align="center"&gt;X&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;X&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="left"&gt;Update alarm selepas&amp;nbsp; alarmtime=current &lt;/td&gt;&lt;br /&gt; &lt;/tr&gt;&lt;br /&gt; &lt;tr&gt;&lt;br /&gt;  &lt;td align="center"&gt;X&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="left"&gt;Update alarm selepas&amp;nbsp; alarmtime=current&lt;/td&gt;&lt;br /&gt; &lt;/tr&gt;&lt;br /&gt; &lt;tr&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;X&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;X&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;X&lt;/td&gt;&lt;br /&gt;  &lt;td align="left"&gt;Update alarm sebelum alarmtime=current&lt;/td&gt;&lt;br /&gt; &lt;/tr&gt;&lt;br /&gt; &lt;tr&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;X&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;X&lt;/td&gt;&lt;br /&gt;  &lt;td align="left"&gt;Update alarm sebelum current &amp;gt;offtime, create new alarm&lt;/td&gt;&lt;br /&gt; &lt;/tr&gt;&lt;br /&gt; &lt;tr&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;X&lt;/td&gt;&lt;br /&gt;  &lt;td align="left"&gt;Update alarm sebelum offtime = current jika current &amp;lt; &lt;br /&gt;  offtime&lt;/td&gt;&lt;br /&gt; &lt;/tr&gt;&lt;br /&gt; &lt;tr&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="center"&gt;1&lt;/td&gt;&lt;br /&gt;  &lt;td align="left"&gt;Update alarm selepas&amp;nbsp; alarmtime=current&lt;/td&gt;&lt;br /&gt; &lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-1888923321910381554?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/1888923321910381554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=1888923321910381554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/1888923321910381554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/1888923321910381554'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2008/10/lifo-alarm.html' title='LIFO Alarm Processing'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-7185200077759978596</id><published>2008-10-23T21:44:00.001-07:00</published><updated>2008-10-23T21:55:20.266-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>MySQL multi keywords search with priority</title><content type='html'>Ader org tanya aku pasal nak buat carian nama berdasarkan lebih dari satu keyword dan nak result tu disusun mengikut priority carian tersebut.&lt;br /&gt;&lt;br /&gt;kata kan mencari nama manaf osman&lt;br /&gt;&lt;br /&gt;nama yang akan keluar :&lt;br /&gt;&lt;br /&gt;manaf bin osman&lt;br /&gt;manaf abdul osman&lt;br /&gt;manaf gazali osman&lt;br /&gt;manaf hashim osman&lt;br /&gt; abdul manaf&lt;br /&gt;daud manaf&lt;br /&gt;osman manf&lt;br /&gt;&lt;br /&gt;Jadi aku try la buat satu query untuk sort carian tu. Idea dia,&lt;br /&gt;&lt;br /&gt;1. Carik location carian tu berlaku untuk setiap keyword.&lt;br /&gt;2. Kalau result location dia 0 (x jumpa), kene jadikan value dia paling tinggi.&lt;br /&gt;3. Left pad kan result dengan kosong di hadapan, max aku pakai 7 digit&lt;br /&gt;4. CONCAT semua result carian.&lt;br /&gt;5. CAST result yang dah di CONCAT kepada nilai integer.&lt;br /&gt;6. Susun mengikut hasil pada no 5.&lt;br /&gt;&lt;br /&gt;Ni contoh query yang aku dah buat.&lt;br /&gt;&lt;br /&gt;SELECT * FROM (&lt;br /&gt;SELECT CAST(CONCAT(LPAD(BBPos1,7,'0'),LPAD(BBPos2,7,'0')) as UNSIGNED) as Position,CC.* FROM (&lt;br /&gt;SELECT IF(Pos1=0,999999,Pos1) as BBPos1,IF(Pos2=0,999999,Pos2) as BBPos2,BB.* FROM (&lt;br /&gt;SELECT LOCATE('mohd',namapenuh) as Pos1,LOCATE('HJ',namapenuh) as Pos2,AA.* FROM (&lt;br /&gt;SELECT * FROM ahli WHERE namapenuh LIKE '%mohd%'&lt;br /&gt;UNION&lt;br /&gt;SELECT * FROM ahli WHERE namapenuh LIKE '%HJ%'&lt;br /&gt;) as AA&lt;br /&gt;) as BB&lt;br /&gt;) as CC&lt;br /&gt;) as DD ORDER BY Position,namapenuh&lt;br /&gt;&lt;br /&gt;Ni kira math dan logik kena power gak la. Macam ninja.&lt;br /&gt;&lt;br /&gt;Nin.. Nin..&lt;br /&gt;Hemo... Hemo..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-7185200077759978596?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/7185200077759978596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=7185200077759978596' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/7185200077759978596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/7185200077759978596'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2008/10/mysql-multi-keywords-search-with.html' title='MySQL multi keywords search with priority'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-8514703039654151729</id><published>2008-10-22T16:41:00.001-07:00</published><updated>2008-10-22T16:50:43.742-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>PHP Web Service, .NET Remote MySQL Dataset</title><content type='html'>Projek open source aku yang pertama kat google code.&lt;br /&gt;Kebanyakkan web hosting tak membenarkan connection MySQL dari luar untuk dasar keselamatan. Biasanya kalau nak manage ke pakai phpMyAdmin. Tapi kalau database tu dah besar, nak dump data macam lama gila, tambah lagi dengan internet yang slow.&lt;br /&gt;&lt;br /&gt;So, aku create la web service pakai PHP dan return data dalam bentuk .NET dataset untuk mudahkan aku process data. Harap projek ni berguna jugak untuk org lain.&lt;br /&gt;&lt;br /&gt;Nin...nin..&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/phpremotemysqldataset/downloads/list"&gt;http://code.google.com/p/phpremotemysqldataset/downloads/list&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-8514703039654151729?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/8514703039654151729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=8514703039654151729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8514703039654151729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8514703039654151729'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2008/10/php-web-service-net-remote-mysql.html' title='PHP Web Service, .NET Remote MySQL Dataset'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-155037412188727123</id><published>2008-10-22T04:45:00.000-07:00</published><updated>2008-10-22T04:50:29.160-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>SQLite for ADO.NET 2.0</title><content type='html'>Dalam aku tengah rilek-rilek aku teringat nak carik library untuk develop system PDA guna Sqlite sebagai database. Sebelum ni aku dah guna Sqlite ni untuk desktop application. Kira Ok jugak SQlite ni. Bagus untuk small embbed database dan boleh digunakan dalam CD. Library yang ni ader include sekali binary untuk Compact Framework.&lt;br /&gt;&lt;br /&gt;Ni link untuk ke website dia.&lt;br /&gt;&lt;a href="http://sourceforge.net/project/showfiles.php?group_id=132486"&gt;http://sourceforge.net/project/showfiles.php?group_id=132486&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-155037412188727123?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/155037412188727123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=155037412188727123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/155037412188727123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/155037412188727123'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2008/10/sqlite-for-adonet-20.html' title='SQLite for ADO.NET 2.0'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7966116666272165780.post-8326770146803351174</id><published>2008-10-22T04:34:00.001-07:00</published><updated>2008-10-22T04:35:59.363-07:00</updated><title type='text'>First Post</title><content type='html'>Tujuan aku buat blog ni sebagai catatan berkaitan kerja aku dalam programming. Mungkin org lain pun boleh dapat manfaatnya.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7966116666272165780-8326770146803351174?l=peyotest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peyotest.blogspot.com/feeds/8326770146803351174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7966116666272165780&amp;postID=8326770146803351174' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8326770146803351174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7966116666272165780/posts/default/8326770146803351174'/><link rel='alternate' type='text/html' href='http://peyotest.blogspot.com/2008/10/first-post.html' title='First Post'/><author><name>Peyotest</name><uri>http://www.blogger.com/profile/00607507968122313716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_KzyYoK-JcyM/SP8XtPAUk5I/AAAAAAAAAAM/hoQCywHvx7g/S220/15009923223365m.jpg'/></author><thr:total>0</thr:total></entry></feed>
