<?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:blogger='http://schemas.google.com/blogger/2008' 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-4267682273897969213</id><updated>2024-10-07T13:28:42.961+08:00</updated><title type='text'>Edmund Liew</title><subtitle type='html'>Hello and Welcome! Most of the articles at this site were created in response to questions, comments, or arguments put forth by people who challenge the pre tribulation rapture.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-4682531759184515094</id><published>2018-01-13T20:59:00.002+08:00</published><updated>2018-01-13T21:05:03.168+08:00</updated><title type='text'>Fix: This Nvidia Graphics Driver Is Not Compatiable with This Version of Windows</title><content type='html'>It is beyond reasonable doubt that NVidia makes some of the best graphic
 processing units (GPU) the market has ever seen. For years NVidia has 
been meeting the needs of video editors, graphic designers, animators, 
PC gaming enthusiasts and other GPU hungry professions out there. When a
 user therefore gets an error that “This NVidia graphics driver is not 
compatible with this version of Windows”, it becomes a cause of panic.&lt;br /&gt;
This issue is seen during an attempt to install the NVidia drivers. 
The end result is that the user is therefore unable to make any good of 
the NVidia GPU since the drivers will not install. Does this mean that 
NVidia does not support your version of Windows, or you need another 
graphics card? Do not panic; if you are going through such a problem, 
you’ve come to the right place. We will explain why this error occurs, 
what it means, and how it can be remedied.&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Why your NVidia driver is not compatible with your version of Windows&lt;/b&gt;&lt;/h3&gt;
This problem has been reported numerously by Windows 10 users, with 
Windows 7 users also making an appearance. As the error starts, the 
drivers you are trying to install are not meant for the current 
operating system you are running; simple as that. The hardware or the 
NVidia GPU is not to blame here. This lies squarely between the drivers 
and your Windows OS.&lt;br /&gt;
One reason for this problem is that you might be trying to install a 
32 bit driver on a 64 bit operating system, or a 64 bit driver on a 32 
bit operating system. Since the architecture of these two systems is 
different, they need different driver for NVidia to function. These 
drivers are not interchangeable in any way. Open Direct X Diagnostics to
 know your operating system you are running (Run &amp;gt; type ‘dxdiag’ &amp;gt;
 OK &amp;gt; Display)&lt;br /&gt;
&lt;br /&gt;
.&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-47971 tie-appear&quot; height=&quot;206&quot; src=&quot;https://appuals-jvwu8xgofzysz.netdna-ssl.com/wp-content/uploads/2017/11/2017-11-16_223048.png&quot; width=&quot;399&quot; /&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-47970 tie-appear&quot; height=&quot;532&quot; src=&quot;https://appuals-jvwu8xgofzysz.netdna-ssl.com/wp-content/uploads/2017/11/2017-11-16_223121.png&quot; width=&quot;727&quot; /&gt;&lt;br /&gt;
The second reason that has been bugging a lot of Windows 10 users 
lies in the version/build of Windows 10 they are running. NVidia drivers
 are not supported in any version of Windows before the Windows 10 
Threshold 2 version 1511. Infact, the only supported versions are from 
the Threshold 2 version (1511), Anniversary version (1607) and the Fall 
Creators version (1703).&amp;nbsp; In terms of builds, the first retail build 
(build 10240) is not supported. Only builds from 10586 are supported. To
 check your version of Windows, press Windows Key + R, type ‘Winver’ in 
the run box, and press enter. The first box shows your version, and the 
second red box shows your Windows build.&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-47972 tie-appear&quot; height=&quot;205&quot; src=&quot;https://appuals-jvwu8xgofzysz.netdna-ssl.com/wp-content/uploads/2017/11/2017-11-16_213848.png&quot; width=&quot;397&quot; /&gt; &lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-47973 tie-appear&quot; height=&quot;403&quot; src=&quot;https://appuals-jvwu8xgofzysz.netdna-ssl.com/wp-content/uploads/2017/11/2017-11-16_213747.png&quot; width=&quot;456&quot; /&gt;&lt;br /&gt;
Here is how you can resolve this problem. If the first method does not work for you, try the next method.&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Method 1: Uninstall your graphics drivers with DDU and manually download your NVidia drivers for your OS.&lt;/b&gt;&lt;/h3&gt;
DDU (Display Drivers Uninstaller) will help remove any bad drivers 
that were installed for your NVidia GPU. You must then carefully find 
the correct NVidia drivers on the GeForce website and install them.&lt;br /&gt;
&lt;b&gt;Step 1: &lt;/b&gt;Uninstall NVidia graphics using DDU. If you have not installed anything yet, skip this step&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Download Display Drivers Uninstaller from &lt;a href=&quot;http://www.guru3d.com/files-details/display-driver-uninstaller-download.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Run the downloaded file to install DDU&lt;/li&gt;
&lt;li&gt;After the installation is complete, open DDU from your start menu&lt;/li&gt;
&lt;li&gt;From the drop down menu select your NVIDIA driver&lt;/li&gt;
&lt;li&gt;Click on ‘Clean and restart (Highly Recommended)’ to clean the driver. This will restart your PC&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-47974 tie-appear&quot; height=&quot;555&quot; src=&quot;https://appuals-jvwu8xgofzysz.netdna-ssl.com/wp-content/uploads/2017/11/2017-11-16_212420.png&quot; width=&quot;602&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;b&gt;Step 2:&lt;/b&gt; Find the correct drivers of GeForce manually&lt;br /&gt;
&lt;div style=&quot;float: none; margin: 10px 0 10px 0; text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;span style=&quot;color: mediumblue;&quot;&gt;&lt;b&gt;PRO TIP:&lt;/b&gt;&lt;/span&gt; &lt;b&gt;If
 the issue is with your computer or a laptop/notebook you should try 
using the Reimage Plus Software which can scan the repositories and 
replace corrupt and missing files. This works in most cases, where the 
issue is originated due to a system corruption. You can download Reimage
 Plus by &lt;a href=&quot;https://www.reimageplus.com/includes/router_land.php?tracking=RNWassabi&amp;amp;lpx=drp&amp;amp;banner=WW&amp;amp;adgroup=ProTip_Middle(Vid)&amp;amp;vid=1&quot; rel=&quot;nofollow&quot;&gt;&lt;span style=&quot;color: green;&quot;&gt;Clicking Here&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;li style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;Download the first driver in the list that comes up. This is the latest driver available for your GPU for your OS.&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-47975 tie-appear&quot; height=&quot;260&quot; src=&quot;https://appuals-jvwu8xgofzysz.netdna-ssl.com/wp-content/uploads/2017/11/2017-11-16_213103.png&quot; width=&quot;400&quot; /&gt;&lt;/li&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Go to the NVidia drivers download page &lt;a href=&quot;https://www.geforce.com/drivers&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;In the manual search section, select your graphic card type (e.g. 
GeForce), select your graphics card series (e.g. series 900 if your 
graphics card is between 900 – 999 or select series 10 if your card is 
1080, 1020 etc.). Select the notebook versions if you are using a 
laptop.&lt;/li&gt;
&lt;li&gt;More importantly, select your operating system e.g. Windows 10 
64-Bit or Windows 7 32-Bit. To know which OS you are running, press 
Windows Key + R to open Run, type ‘dxdiag’ (without quotes) and hit 
enter. You will see your system information in the ‘System’ tab.&lt;/li&gt;
&lt;li&gt;Finally, make sure you select “Recommended/Certified” drivers since ‘Beta’ drivers are unstable and might not work.&lt;/li&gt;
&lt;li&gt;Click ‘Start Search’ to begin your search&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-47976 tie-appear&quot; height=&quot;220&quot; src=&quot;https://appuals-jvwu8xgofzysz.netdna-ssl.com/wp-content/uploads/2017/11/2017-11-16_212833.png&quot; width=&quot;400&quot; /&gt;&lt;/li&gt;
&lt;li&gt;After the download is complete, run the file and install your 
drivers. Make sure you perform a clean install by checking ‘Perform 
clean install’ in the NVidia installation window.&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-47977 tie-appear&quot; height=&quot;379&quot; src=&quot;https://appuals-jvwu8xgofzysz.netdna-ssl.com/wp-content/uploads/2017/11/2017-11-16_213352.png&quot; width=&quot;512&quot; /&gt;&lt;/li&gt;
&lt;li&gt;Restart your PC&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
&lt;b&gt;Method 2: Update or upgrade your version of Windows.&lt;/b&gt;&lt;/h3&gt;
To check your version of Windows, press Windows Key + R, type 
‘Winver’ in the run box, and press enter. Your version of Windows must 
be 1511 or higher for NVidia drivers to install. To update Windows 10:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Press Windows Key + I to open Windows 10 settings&lt;/li&gt;
&lt;li&gt;Scroll down and click on Update &amp;amp; Security&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-47979 tie-appear&quot; height=&quot;335&quot; src=&quot;https://appuals-jvwu8xgofzysz.netdna-ssl.com/wp-content/uploads/2017/11/2017-11-16_213920.png&quot; width=&quot;400&quot; /&gt;&lt;/li&gt;
&lt;li&gt;In the Windows Update tab, click on ‘check for updates’&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-47978 tie-appear&quot; height=&quot;335&quot; src=&quot;https://appuals-jvwu8xgofzysz.netdna-ssl.com/wp-content/uploads/2017/11/2017-11-16_214022.png&quot; width=&quot;400&quot; /&gt;&lt;/li&gt;
&lt;li&gt;Accept the installation of all updates you find&lt;/li&gt;
&lt;li&gt;Windows might restart a few times during these updates, do not interrupt it.&lt;/li&gt;
&lt;/ol&gt;
The Windows Student or Education edition and preview editions of 
Windows 10 will not update to the Threshold 2, Anniversary or Fall 
Creators versions so you will need to clean install the Anniversary or 
Fall Creators versions. See&amp;nbsp;&lt;a href=&quot;https://appuals.com/how-to-install-windows-10/&quot;&gt;install windows 10&lt;/a&gt;&amp;nbsp;on
 how to clean install Windows 10 if you already have a license key, 
ignore the step on getting one. You can find useful information about 
installing Windows 10 at&amp;nbsp;&lt;a href=&quot;https://appuals.com/how-to-clean-install-windows-10/&quot;&gt;clean install windows 10&lt;/a&gt; and &lt;a href=&quot;https://appuals.com/how-to-create-windows-10-bootable-usb-using-rufus/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;https://appuals.com/how-to-create-windows-10-bootable-usb-using-rufus/&lt;/a&gt;.&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Method 3: Use GeForce Experience to download your NVidia driver&lt;/b&gt;&lt;/h3&gt;
Although Direct X Diagnostics (Run &amp;gt; type ‘dxdiag’ &amp;gt; OK &amp;gt; 
Display) will tell you which NVidia GPU you are using, it might not show
 the full information if the drivers are not installed. If you are not 
sure which NVidia/GeForce GPU you are running on, then GeForce 
Experience will help get the drivers for you.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;li style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;Download GeForce Experience application and install it&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-47982 tie-appear&quot; height=&quot;196&quot; src=&quot;https://appuals-jvwu8xgofzysz.netdna-ssl.com/wp-content/uploads/2017/11/2017-11-16_224248.png&quot; width=&quot;400&quot; /&gt;&lt;/li&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;li style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;When your latest drivers are found, they will be listed. Click on 
“Custom Install” to open the file (You can use express installation if 
you want but it will not let you choose the installation options).&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-47980 tie-appear&quot; height=&quot;240&quot; src=&quot;https://appuals-jvwu8xgofzysz.netdna-ssl.com/wp-content/uploads/2017/11/2017-11-16_220240.png&quot; width=&quot;400&quot; /&gt;&lt;/li&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Go to the GeForce website &lt;a href=&quot;https://www.nvidia.com/en-us/geforce/geforce-experience/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Make sure you have connected your monitor via the NVidia GPU if you are on a desktop computer.&lt;/li&gt;
&lt;li&gt;Start the GeForce Experience program. If you are asked to update it, accept the update otherwise you might run into trouble.&lt;/li&gt;
&lt;li&gt;Click on the “Drivers” tab. Any updates on your drivers will be 
found. You can click on “Check for Updates” on the far right to manually
 begin a search.&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-47981 tie-appear&quot; height=&quot;240&quot; src=&quot;https://appuals-jvwu8xgofzysz.netdna-ssl.com/wp-content/uploads/2017/11/2017-11-16_215511.png&quot; width=&quot;400&quot; /&gt;&lt;/li&gt;
&lt;li&gt;The drivers file will launch. Make sure you perform a clean install 
by checking ‘Perform clean install’ in the NVidia installation window. 
Finish the installation.&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-47977 tie-appear&quot; height=&quot;379&quot; src=&quot;https://appuals-jvwu8xgofzysz.netdna-ssl.com/wp-content/uploads/2017/11/2017-11-16_213352.png&quot; width=&quot;512&quot; /&gt;&lt;/li&gt;
&lt;li&gt;Restart your PC&lt;/li&gt;
&lt;/ol&gt;
If this is too much of trouble to you, there is an auto-detect feature on the GeForce website &lt;a href=&quot;https://www.geforce.com/drivers&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; that you can use instead of the manual search. This will automatically detect your GPU and present you with the latest drivers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;source from https://appuals.com &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/4682531759184515094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2018/01/fix-this-nvidia-graphics-driver-is-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/4682531759184515094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/4682531759184515094'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2018/01/fix-this-nvidia-graphics-driver-is-not.html' title='Fix: This Nvidia Graphics Driver Is Not Compatiable with This Version of Windows'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-7142567603512964898</id><published>2014-01-27T21:54:00.002+08:00</published><updated>2014-01-27T21:56:10.423+08:00</updated><title type='text'>How to build your own computer</title><content type='html'>&lt;h2&gt;
Tools&lt;/h2&gt;
&lt;img alt=&quot;tools.jpg - 28326 Bytes&quot; border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/tools.jpg&quot; height=&quot;300&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
There are only very few tools you need to assemble a computer.
One bolt driver (C) to fasten distance bolts carrying your mainboard 
and fastening screws on serial ports, printer ports and similar 
plugs. Two cross point screwdrivers, Philips size #1 (B) and #2 (A).
One set of slightly curved thin pliers for pulling jumpers.
You can do that with your fingers as well. Thermal compound 
paste for CPU mounting. Nylon cable straps for fixing cables 
out of the way of coolers. Patience. That&#39;s it.&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;/center&gt;
&lt;table align=&quot;CENTER&quot; style=&quot;width: 480px;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;h3&gt;
And now the fun-part: &lt;/h3&gt;
&lt;h2&gt;
Building your own El Cheapo Rocket&lt;/h2&gt;
Let&#39;s start with the box. No fuzzing around, no designer boxes.
Just a plain old big tower. Big towers are extra cooling metal,
making your system last longer than small boxes. Watch for the 
craftsmanship, get boxes where the edges have been rounded off 
or folded. This prevents injuries or shortings at injured pieces 
of insulation. Look for the possibility to take off just the 
side covers without removing the full cover. This makes future 
servicing or upgrades easier. Get a box with not the thinnest 
metal parts, this will reduce noise by vibration.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;boxopen.jpg - 43914 Bytes&quot; border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/boxopen.jpg&quot; height=&quot;723&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Remove the screws of the box (marked in red) to open it and 
put them aside with the case covers.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;boxscrews.jpg - 17157 Bytes&quot; border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/boxscrews.jpg&quot; height=&quot;268&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
They should be standard UNC screws, but sometimes for strange 
reasons box screws are different from standard screws, so keep 
them apart from the others.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;accsupply.jpg - 44487 Bytes&quot; border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/accsupply.jpg&quot; height=&quot;537&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Inside of the box there is the power supply (marked 1) and a set 
of accessories (marked 2) such as slot covers, a bag of screws and 
bolts, the mains cable and (optional) casters for the box itself.&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/accbox.jpg&quot; height=&quot;381&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
The shipped accessories of a regular case.&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/screwsbolts.jpg&quot; height=&quot;450&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Put the screws and bolts into one of the case covers, 
so they don&#39;t roll around all over the table.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;supplies1.jpg - 28628 Bytes&quot; border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/supplies1.jpg&quot; height=&quot;245&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Get rid of the shipped power supply. Almost all boxes are 
shipped with very simple, cheap, poor power supplies (left).
Replace that with an Enermax 330, 350 (shown right) or 
400 Watt power supply.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;supplies2.jpg - 43081 Bytes&quot; border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/supplies2.jpg&quot; height=&quot;452&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Maybe you find a place that can sell a standard box without 
power supply or replace that for an Enermax with a rebate for 
the shipped one. See above, the difference in workmanship is 
dramatic.&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/casefeatures.jpg&quot; height=&quot;278&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Open covers over future USB-terminals (1), audio jacks (3) and for
add-on cards (4), where necessary according to the board you bought.&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/casemountholes.jpg&quot; height=&quot;257&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Check which case holes (2) will match your board.&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/openbaycover.jpg&quot; height=&quot;414&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Remove covers over all drive bays you will need for CD/DVD/CD-R-drives
or similar. Leave them in all other places, they are meant to reduce 
electronic smog.&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/panelconnex.jpg&quot; height=&quot;296&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Lay the box on the side, and fix the panel connector cables with
a strip of scotch tape to keep them out of your way.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;center&gt;
&lt;/center&gt;
&lt;table align=&quot;CENTER&quot; style=&quot;width: 480px;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;h2&gt;
Mainboard, CPU and upgrade cards&lt;/h2&gt;
Get a good stable mainboard by a well reputated big manufacturer.
Currently my best recommendation would be an Asus board for 
AMD Athlon and Duron CPUs. When you are on a tight budget, you 
may start with the smallest Duron CPU available (sells for peanuts)
and upgrade to a 1.x GHz Athlon Thunderbird when that drops below 
100 US$. The Asus board is much more expensive than any noname 
board, but it is thoroughly developed and comes with industries 
best support. This means you will most assuredly be able to upgrade
your machine longer than any other, you will have excellent driver 
support and all manuals available online if you loose yours.
&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;boardprepare.jpg - 43238 Bytes&quot; border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/boardprepare.jpg&quot; height=&quot;323&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Put the board on a flat stable surface onto the anti static foam for assembly.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;CPU:&lt;/b&gt; Even the slowest CPU available today is fast enough for most 
every daily office job, and capable of many daily routine jobs 
in graphic arts and photography. So you might start with a Duron.
If you know you will need extra performance or have enough 
money to pre-invest in some headroom, go for the full Athlon 
Thunderbird CPU. Select your CPU by price, then. The smaller CPUs
are cheaper than the big ones, but prices don&#39;t run linear 
with CPU clock. Look at the prices, they rise with CPU clock.
You will find a disproportional rise somewhere in the line of CPUs, 
much more increase from one certain CPU to the next than that 
from the previous smaller one. The CPU before this big increase 
is the one to buy.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;openzifsocket.jpg - 41939 Bytes&quot; border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/openzifsocket.jpg&quot; height=&quot;417&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Open the lever of the ZIF (zero insertion force) socket. The 
CPU can only be placed in one orientation, check the missing 
pins and corresponding missing socket holes.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;closezifsocket.jpg - 30599 Bytes&quot; border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/closezifsocket.jpg&quot; height=&quot;300&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Close lever again to fix CPU. The four rubber points are buffers 
to prevent coolers from damaging CPUs by being tilted and mounted.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;2coolers.jpg - 45487 Bytes&quot; border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/2coolers.jpg&quot; height=&quot;300&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cooler:&lt;/b&gt; Modern CPUs generate more heat per square inch than an 
oven plate. Up to 60 Watts of heating energy must be dispersed 
and killed. Buy the best cooler available, the Titan Majesty (left) 
or the Alpha (right) or the Pentalpha (below).&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;prepcooler1.jpg - 29762 Bytes&quot; border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/prepcooler1.jpg&quot; height=&quot;242&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;prepcooler2.jpg - 23881 Bytes&quot; border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/prepcooler2.jpg&quot; height=&quot;316&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Remove the bubble gum thermal pad that is factory applied. Scrape 
it off and use Zippo lighter fluid or cleaning gasoline to get 
rid of all the rests. Try not to scratch the cooler plate.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;thermalcompound.jpg - 30786 Bytes&quot; border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/thermalcompound.jpg&quot; height=&quot;310&quot; width=&quot;450&quot; /&gt;
Apply a very thin coating of thermal compound paste onto just 
the processor die itself. The die must be fully covered with 
a thin layer, but the paste should not squirt out when mounting 
the cooler on the CPU. Too much will not be temperature conductive 
anymore, it will turn into a thermal insulator. Mount CPU, cooler 
and memory before putting the board into the box. You will need 
some strength to mount the cooler.&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/mountcooler.jpg&quot; height=&quot;537&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
On some coolers you can use a screwdriver as a lever. Be careful 
not to damage the board with the cooler bracket.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Memory:&lt;/h2&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/memory.jpg&quot; height=&quot;136&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/memoryslot.jpg&quot; height=&quot;261&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Up to 128 MB Windows in all flavors will get faster 
with every MB of memory. Above that more memory is useful 
for graphic applications and others that are meant to process 
large files. It also allows to run several programs at the 
same time without too much loss of performance.
My suggestion would be to buy no less than 128 MB, my 
recommendation is to buy at least 256 MB, if possible in 
one module. Above you can see notches in the memory module
and the corresponding cams in the memory slot. You cannot
mount memory in the wrong orientation. Memory is - together 
with board and power supply - the most common reason for
instable systems. Get modules by major brands such as 
Infineon (shown above), Samsung or Micron.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Graphic card:&lt;/b&gt; Photoshop needs no 3D or gaming capabilities.
A sharp signal and good performance in higher screen resolutions 
are much more critical. TV out is an excellent tool for printing 
to video or presentation on a TV monitor. I have only one 
recommendation for that, Matrox cards. Currently the Matrox G550 
Double Head is the one to buy. 16 MB is plenty to fuel even big 
22&quot; screens, any memory exceeding this would be used for a few 
games, but makes no difference for the working graphics artist.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Sound card:&lt;/b&gt; Sound cards are either Soundblasters or compatible 
to that. More or less compatible. If you don&#39;t want a full 
audio studio setup, the cheapest original Creative Labs Soundblaster
card will do (and the Soundblaster live in various combinations in 
known to cause problems). Pay more attention to the speakers. 
Lift them up, the better ones are usually heavier than the worse 
table horns. Even with subwoofers you shouldn&#39;t need to shell out 
more than 80 US$ max for a fine set of speakers. Speakers with power 
supply integrated are a better choice than speakers with external 
mains adapter plug - you can fully switch them off.
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Hard drives&lt;/b&gt; Same as CPU, calculate what will give 
you the most GB per dollar. Go for IBM or Maxtor drives.
5400 rpm drives will give you the longest life, they are
relatively quite and they are not very demanding regarding
extra ventilation. 7200 rpm drives are faster, noisier 
and have a smaller life expectation because the bearings 
are stressed more than in slower drives. However, the 
increase in speed is not dramatic in applications like 
Photoshop, you need sustained write/read speeds for large 
files, with files fitting into physical memory that is 
basically only a help in opening or writing files.
Saves only seconds, no big deal. So, I&#39;d suggest to go 
for 5400 rpm drives.
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;CD-ROM, DVD, CD-R:&lt;/b&gt; DVDs are mostly used to watch video 
movies. Rarely software packages need that much room. I don&#39;t 
really need one today, but since prices drop dramatically, 
there is no reason not to put one into a new computer.
CD recorders use a pickup that is heavier than that of regular 
CD-ROM drives. Using it for everyday work would wear it too fast. 
It is a good idea to buy a regular CD-ROM or DVD drive alongside 
your burner. Don&#39;t look for max spinning speed, look for a rugged 
unit. Drives with high nominal spinning rates usually produce 
reading errors at max speed, spin down, up again, down, up..... and 
you find that you bought a siren. Go for a nice and rugged 
Teac 40x drive or a Toshiba DVD. And while you&#39;re at it, grab a 
Teac or Plextor CD-recorder as well. The new class of 12(16)x/10x/32(40)x 
drives makes use of a nice little feature: BurnProof. This means 
the unit can detect a buffer underrun closing in and interrupt 
burning. Nothing big, huh ? No, but these units can resume at 
exactly the same position a few seconds later, when the buffer 
is filled again. Where you used to throw away CDs by the dozen, 
you now just receive the message that buffer underrun was avoided 
5 times or so....  The Teac is a very good drive, but if you are 
up for audio as well, get the Plextor. It is from my experience 
a little better in audio.&lt;br /&gt;
There are several recording programs bundled with recorders today.
I would recommend to throw them all away and not to install 
them if it isn&#39;t &quot;Nero burning Rom&quot; from Ahead (http://www.ahead.de).
Do not install more than one CD recording program at once, 
they will most certainly interfere and make your machine 
shaky - you don&#39;t want that. There are programs that might 
perform better in gamecopy protection cracking, but remember 
this is a tool, not a toy. No games loaded anyway.
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Removable media, backup:&lt;/b&gt; Veeeery important, and with deadly
precision the part where regular budgets end. Without backup 
this might also be the point where your business ends....
With a limited budget don&#39;t worry too much about backing up 
the whole system. One can reinstall the OS plus all programs in
one day. You have installation CDs for that.  The dangerous part 
is losing your contracts, your images, the hours spent in 
retouching, maybe all your originals if you are fully digital.
 Burn everything including program settings, rare fonts, 
downloads and new drivers from the net and everything else 
you&#39;d maybe need again to CD. Burn it to two sets of CDs, and 
store both sets in a cool, dry and dark (!) place. One in 
your house, and one in another house. Your house might burn 
down or you might get robbed or.... With a second set of backups
life goes on. CDs are cheap. You are not.&lt;br /&gt;
&lt;br /&gt;
If you want full security to the max possible state of 
the art, you will need a SCSI SLR or DLT tape drive and
a dedicated backup program. Including disaster recovery, 
open file agent and other features this may well make 
much more than the complete machine without backup.
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Input devices (keyboard, graphic tablets, mice):&lt;/b&gt; Don&#39;t fuss 
around with multimedia keyboards with loads of extra keys.
They will need extra drivers to be fiddled into your system, 
a potential source of problems. If you are not typing much, 
the cheapest 10 US$ keyboard might do. If you type some more, 
go for a cherry keyboard at about 20 US$.  There are cheaper 
graphic tablets, that I don&#39;t recommend. A simple small Wacom 
graphire at about 100 US$ does well. Go no cheaper. There is 
nothing more expensive than cheap tools. Get a good mouse,
Logitech cordless wheel mouse classic, three buttons plus wheel.
Or the same in standard cord version. The cordless is much 
more flexible in handling, but costs extra money.
Optical mice are fascinating toys, but if you sport a 
calendar with printed grid on your desk, your cursor might 
run wild.
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Scanners:&lt;/b&gt; USB scanners, firewire (IEEE 1394) or SCSI-Devices are the way to go.
Don&#39;t try to settle for a parallel port toy. For little under 
300 US$ you get good units from Microtek or Epson that come 
with translucent unit and you can expect to draw quite acceptable 
scans from MF negatives and slides with those. Buy an extra 
film scanner for 35, the quality of flatbeds with TLU is in 35mm
only good for occasional web use. Nikon or Minolta in the low 
budget range, Canon, Nikon, Polaroid, Minolta and Microtek with the 
better ones.
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Printers:&lt;/b&gt; For letters you do well with laser printers, 
there is no cheaper printing in the long run. But if you
want to print images, there is no way around Epson printers.
My personal tip for sheets up to 8x11.5&quot; is the Epson 900 
respectively the new 980. Mere 3 minutes for a print you 
can&#39;t tell from regular RA-4, provided you pick the right 
paper. If you want your prints archival, the Epson 2000 P 
is the thing to buy. It also prints up to 12x16&quot; sheets and 
banners. There has just been introduced a new Epson with
archival single ink tanks. I will look into that and report 
back.
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Monitors:&lt;/b&gt;Monitors are what you stare at (all day
if you are slow...). Don&#39;t buy cheap, as a photographer 
your eyes are your most precious tool, you don&#39;t want to 
ruin them. Buy Eizo, Quatographic, Sony Triniton and similar.
Be prepared to really shell out some money. This keeps 
your eyes healthy and it delivers enough contrast and 
sharpness to judge color balance at all. LCD screens 
look impressive, they are flickerfree, but they have one 
crucial disadvantage: Their color rendition is not fit 
for picture processing and cannot be properly calibrated.
Get a monitor that is capable of using BNC cable terminals 
for input. This adds to signal quality.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;center&gt;
&lt;/center&gt;
&lt;center&gt;
&lt;/center&gt;
&lt;table align=&quot;CENTER&quot; style=&quot;width: 480px;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;h2&gt;
Putting the box together.....&lt;/h2&gt;
There are only very few different sorts of screws and bolts used in computers.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;screws.jpg - 25732 Bytes&quot; border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/screws.jpg&quot; height=&quot;300&quot; width=&quot;450&quot; /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are two different threads, one coarse (A,B) and one finer threading (C).
A-type screws are for case covers, slot covers, mainboard fixing.  B-type 
screws are used to mount hard disk drives, C-type screws are used for 
Floppy Disk drives and CD-ROMs, CD burners, DVD drives and Zip-drives. Pretty 
simple, isn&#39;t it ?
&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;bolts.jpg - 28127 Bytes&quot; border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/bolts.jpg&quot; height=&quot;300&quot; width=&quot;450&quot; /&gt;
&lt;br /&gt;
&lt;br /&gt;
First mount CPU, cooler and memory on the mainboard. The mainboard is then
mounted in the box. It is mounted on distance bolts that come in several 
variations. 1,2,8 and 9 are basically the same, just different in length 
adjusted to the box dimensions. These are the best fixtures available.
Make sure the box you buy has these, and not 5 or 6 type bolts. The 
mainboard has holes, and the boxes have fixing threads. Where ever a mainboard
hole corresponds to a hole in the box put in one of the 1,2,8,9 type bolts
and tighten it wit the bolt driver. Make sure it is tightened, but don&#39;t 
push it too much, else you might damage the thread.&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/supportbolt1.jpg&quot; height=&quot;410&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
4 type plastic bolts fit in the same threads, but are of minor quality. Do not use 
them, get extra metal bolts to replace them. &lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/boardsupport.jpg&quot; height=&quot;232&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Put a 3 type board supporter in every hole of the board that has no 
corresponding threaded hole in the casing.&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/supportbolt2.jpg&quot; height=&quot;363&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Put the board into the case and secure with screws type A or C as above.
Distance bolts can have both threads as inner threads. Watch to pick 
the correct one before putting in a screw.
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Panel connectors&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/panelcable.jpg&quot; height=&quot;241&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Panel connector cables are marked with function. Connectors
to switches (power on, reset) can be mounted any way you like,
LED connectors have a white wire on the common/ground/minus port.
The speaker connector has a red wire for plus and a black wire 
for minus.&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/panelcable2.jpg&quot; height=&quot;406&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Mount them as described in the board manual.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Harddrives, floppies&lt;/b&gt; Mount the drives in their bays and secure 
them with screws (C,F below).&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/cables.jpg&quot; height=&quot;300&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Connect the ribbon data cables (B, D) to the drives. There is 
always one wire marked in red, this is always pin 1. Most
cables are keyed to prevent plugging them the wrong way. 
Nevertheless check to make sure, pin 1 on the drive is also 
marked. Usually it is the pin next to the power connector.
If there is only one device on a cable, plug it into the 
ending last connector. Next plug in the power supplies (A, E).
Again, no way to plug them wrong, the plug shape prohibits this.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cable straps&lt;/b&gt; This is one of the features making
the difference between a poorly assembled and a proper 
computer.&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/straps0.jpg&quot; height=&quot;300&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Bundle all cables and strap the bundles to case cover and
drive bays where feasible. Do this in a way that guarantees 
maximum air circulation and keeps cables clear of cooler fans.
A single cable obstructing a cooler fan can kill your whole 
system.&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/straps2.jpg&quot; height=&quot;484&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Cut off protruding strap tips.&lt;br /&gt;
&lt;br /&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.photoquack.de/tutorials/straps.jpg&quot; height=&quot;300&quot; width=&quot;450&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;center&gt;
&lt;/center&gt;
&lt;h2&gt;
Switching on.....&lt;/h2&gt;
&lt;br /&gt;
After double checking that you plugged all cables correctly
(refer to the mainboard manual and not only try where &quot;it fits&quot;), 
plug in keyboard, mouse and monitor. Caution: If you forget 
the mouse, you have to switch the machine off before plugging.
PS/2 mice may never be plugged or unplugged with the machine 
running, this may fatally damage the port interface.&lt;br /&gt;
&lt;br /&gt;
Now you&#39;re ready to switch on. Leave the case open for the 
first time, if you have bad luck and something smolders, you 
can pull the plug. The system will perform a selftest and 
after a few seconds the screen will show BIOS status reports.&lt;br /&gt;
&lt;b&gt;You are done, the system is ready.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;source: http://www.photoquack.de &lt;/span&gt;&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/7142567603512964898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2014/01/how-to-build-your-own-computer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/7142567603512964898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/7142567603512964898'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2014/01/how-to-build-your-own-computer.html' title='How to build your own computer'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-7145982417795026275</id><published>2014-01-15T08:53:00.001+08:00</published><updated>2014-01-15T08:53:45.238+08:00</updated><title type='text'>How to Install Android on Your PC</title><content type='html'>&lt;div class=&quot;entry clearfix&quot;&gt;
It used to be the case that PC users had the choice of installing 
Windows or, if they were feeling adventurous, a version of Linux. This 
is still true, but it is now also possible to install OS X without 
owning a Mac and virtualization means that you can do all of this 
alongside your main operating system in a virtual computer.&lt;br /&gt;

This being Android.AppStorm, you may well wonder what virtualization 
has to do with your phone or tablet. Well, how would you feel about the 
chance of installing and running Android on your PC? Using a free copy 
of &lt;a href=&quot;https://www.virtualbox.org/&quot; target=&quot;_blank&quot;&gt;VirtualBox&lt;/a&gt;&amp;nbsp;and the information in this guide, you can run a fully functioning – and legal – version of Jelly Bean on your computer.&lt;br /&gt;

&lt;span id=&quot;more-35340&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;h2&gt;
It’s a Simple Process&lt;/h2&gt;
First, you’ll need to grab yourself a copy of VirtualBox. This 
powerful virtualization utility can be used to install a second 
operating system alongside your primary one, and while this usually 
means running a second copy of Windows or trying out Ubuntu, there’s no 
reason why you shouldn’t be able install a mobile operating system as 
well.&lt;br /&gt;

&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_35353&quot; style=&quot;width: 630px;&quot;&gt;
&lt;img alt=&quot;Android may have been designed for your phone and tablet , but that doesn’t mean it needs to stay there.&quot; class=&quot;size-full wp-image-35353&quot; data-cfsrc=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_1.png&quot; height=&quot;349&quot; src=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_1.png&quot; width=&quot;620&quot; /&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;
Android may have been designed for your phone and tablet , but that doesn’t mean it needs to stay there.&lt;/div&gt;
&lt;/div&gt;
Once you have the virtualization software up and running, you’ll need
 to get hold of a copy of Jelly Bean to install. This does not mean that
 you need to obtain an illicit copy of the operating system from an 
untrustworthy website, or rip a copy of your phone’s ROM – it is 
actually freely available.&lt;br /&gt;

&lt;h2&gt;
Step 1: Grab an Android ROM&lt;/h2&gt;
There are various versions of Android available for download, but it 
makes sense to work with the most recent version – Jelly Bean. Head over
 to the &lt;a href=&quot;http://www.android-x86.org/download&quot; target=&quot;_blank&quot;&gt;Android-x86 website&lt;/a&gt;
 scroll down to the Android-x86-4.2-devel section and click the View 
link for the most up to date version (at time of writing this is &lt;a href=&quot;https://android-x86.googlecode.com/files/android-x86-4.2-20130228.iso&quot; target=&quot;_blank&quot;&gt;4.2 20130228&lt;/a&gt;).&lt;br /&gt;

&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_35341&quot; style=&quot;width: 613px;&quot;&gt;
&lt;img alt=&quot;There are several Android ROMs available to download including the latest version of Jelly Bean.&quot; class=&quot;size-full wp-image-35341&quot; data-cfsrc=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_2.png&quot; height=&quot;348&quot; src=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_2.png&quot; width=&quot;603&quot; /&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;
There are several Android ROMs available to download including the latest version of Jelly Bean.&lt;/div&gt;
&lt;/div&gt;
Weighing in at just under 200MB, the download will take a moment to 
transfer. Once you have the ISO file on your hard drive, you’re ready to
 set about the task of installing it in VirtualBox.&lt;br /&gt;

&lt;h2&gt;
Step 2: Going Virtual&lt;/h2&gt;
Pay a visit to the &lt;a href=&quot;https://www.virtualbox.org/wiki/Downloads&quot; target=&quot;_blank&quot;&gt;VirtualBox download page&lt;/a&gt;
 and click the link to download the software. Here, I’m working with 
Windows 8, but VirtualBox is compatible with older versions of 
Microsoft’s operating system, and there are also versions available for 
OS X and Linux.&lt;br /&gt;

&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_35342&quot; style=&quot;width: 630px;&quot;&gt;
&lt;img alt=&quot;VirtualBox can be used to install a second operating system on your computer, including Android.&quot; class=&quot;size-full wp-image-35342&quot; data-cfsrc=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_3.png&quot; height=&quot;317&quot; src=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_3.png&quot; width=&quot;620&quot; /&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;
VirtualBox can be used to install a second operating system on your computer, including Android.&lt;/div&gt;
&lt;/div&gt;
Once downloaded, run through the installation of the program &amp;nbsp;– just 
accept all of the default options. Don’t be concerned when you’re asked 
to install a new network adaptor as this is part if the usual 
installation process.&lt;br /&gt;

&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_35343&quot; style=&quot;width: 524px;&quot;&gt;
&lt;img alt=&quot;A virtual network adaptor will be installed by VirtualBox to allow virtual machines to get online.&quot; class=&quot;size-full wp-image-35343&quot; data-cfsrc=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_4.png&quot; height=&quot;239&quot; src=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_4.png&quot; width=&quot;514&quot; /&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;
A virtual network adaptor will be installed by VirtualBox to allow virtual machines to get online.&lt;/div&gt;
&lt;/div&gt;
Once installation is complete, launch VirtualBox and you’re ready to move to the next stage.&lt;br /&gt;

&lt;h2&gt;
Step 3: Create a Virtual Machine&lt;/h2&gt;
You’ll need to start by creating a new virtual machine onto which you will install Android. Click the &lt;strong&gt;New&lt;/strong&gt; button. Name the virtual machine whatever you like, and (as Android is based on Linux) select &amp;nbsp;&lt;strong&gt;Linux&lt;/strong&gt; from the first drop down menu. From the &lt;strong&gt;Version&lt;/strong&gt; menu select &lt;strong&gt;Other Linux&lt;/strong&gt; and then click &lt;strong&gt;Next&lt;/strong&gt;.&lt;br /&gt;

&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_35344&quot; style=&quot;width: 372px;&quot;&gt;
&lt;img alt=&quot;Android is a Linux-based operating system and it needs to be correctly identified in VirtualBox.&quot; class=&quot;size-full wp-image-35344&quot; data-cfsrc=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_5.png&quot; height=&quot;410&quot; src=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_5.png&quot; width=&quot;362&quot; /&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;
Android is a Linux-based operating system and it needs to be correctly identified in VirtualBox.&lt;/div&gt;
&lt;/div&gt;
Move the memory slider to the right so that 512MB or more of RAM is set aside for VirtualBox and click &lt;strong&gt;Next&lt;/strong&gt;. Make sure that the &lt;strong&gt;Create a virtual hard drive now&lt;/strong&gt;&amp;nbsp;option is selected and click &lt;strong&gt;Create&lt;/strong&gt;. Select &lt;strong&gt;VDI&lt;/strong&gt;, click &lt;strong&gt;Next&lt;/strong&gt; and then select the &lt;strong&gt;Fixed size&lt;/strong&gt; option before clicking &lt;strong&gt;Next&lt;/strong&gt;.&lt;br /&gt;

You can then use the slider to choose how large a disk should be 
assigned to the virtual machine, and you can use the folder button to 
choose where it should be stored. Click &lt;strong&gt;Create&lt;/strong&gt; when you’ve configured your settings — it might take a few minutes for the virtual disk to be created.&lt;br /&gt;

&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_35345&quot; style=&quot;width: 449px;&quot;&gt;
&lt;img alt=&quot;Your virtual Android device can be assigned a drive capacity of your choice -- go wild!&quot; class=&quot;size-full wp-image-35345&quot; data-cfsrc=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_6.png&quot; height=&quot;264&quot; src=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_6.png&quot; width=&quot;439&quot; /&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;
Your virtual Android device can be assigned a drive capacity of your choice — go wild!&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;
Step 4: Install Android&lt;/h2&gt;
Make sure that you have your newly created virtual machine selected and then click the &lt;strong&gt;Settings&lt;/strong&gt; button in the toolbar. Click the &lt;strong&gt;Storage&lt;/strong&gt; link to the left hand side of the dialog and then towards the center click the &lt;strong&gt;Empty&lt;/strong&gt; entry in the &lt;strong&gt;Storage Tree&lt;/strong&gt; section.&lt;br /&gt;

To the right of this, click the small disc button and select &lt;strong&gt;Choose a virtual CD/DVD disk file&lt;/strong&gt; from the menu that appears. Navigate to the ISO file you have downloaded, select it and click &lt;strong&gt;Open&lt;/strong&gt; followed by &lt;strong&gt;OK&lt;/strong&gt;.&lt;br /&gt;

&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_35346&quot; style=&quot;width: 592px;&quot;&gt;
&lt;img alt=&quot;The ISO files you&#39;ve downloaded can be used as a virtual CD to install Android.&quot; class=&quot;size-full wp-image-35346&quot; data-cfsrc=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_7.png&quot; height=&quot;273&quot; src=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_7.png&quot; width=&quot;582&quot; /&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;
The ISO files you’ve downloaded can be used as a virtual CD to install Android.&lt;/div&gt;
&lt;/div&gt;
Power up your virtual machine by clicking the &lt;strong&gt;Start&lt;/strong&gt; button in the VirtualBox toolbar.&lt;br /&gt;

&lt;div class=&quot;tip&quot;&gt;
If this is the first time you’ve used the program you may
 see a message letting you know about mouse capturing. When you move the
 mouse cursor inside the virtual machine window you’ll find that you 
cannot move it back out to control Windows as you normally would – just 
remember to press the right hand &lt;strong&gt;Ctrl&lt;/strong&gt; key to free up the mouse when you need to.&lt;/div&gt;
Use the arrow keys on your keyboard to scroll down to the &lt;strong&gt;Installation&lt;/strong&gt; option and press &lt;strong&gt;Enter&lt;/strong&gt;.&lt;br /&gt;

&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_35347&quot; style=&quot;width: 486px;&quot;&gt;
&lt;img alt=&quot;Android can be run without installation, but opting to install provides a better, faster experience.&quot; class=&quot;size-full wp-image-35347&quot; data-cfsrc=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_8.png&quot; height=&quot;299&quot; src=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_8.png&quot; width=&quot;476&quot; /&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;
Android can be run without installation, but opting to install provides a better, faster experience.&lt;/div&gt;
&lt;/div&gt;
Now you will need to configure the virtual hard drive so that there is somewhere to install Android to. Select the &lt;strong&gt;Create/Modify Partition&lt;/strong&gt; option and press &lt;strong&gt;Enter&lt;/strong&gt;.&lt;br /&gt;

Select &lt;strong&gt;New&lt;/strong&gt; at the bottom of the screen and press &lt;strong&gt;Enter&lt;/strong&gt;, and then select the &lt;strong&gt;Primary&lt;/strong&gt; option before pressing &lt;strong&gt;Enter&lt;/strong&gt; again. Press &lt;strong&gt;Enter&lt;/strong&gt; to create a partition that occupies your entire virtual drive.&lt;br /&gt;

&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_35348&quot; style=&quot;width: 630px;&quot;&gt;
&lt;img alt=&quot;Configuring hard drives for Android may seem complex, but it takes just a few moments.&quot; class=&quot;size-full wp-image-35348&quot; data-cfsrc=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_9.png&quot; height=&quot;344&quot; src=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_9.png&quot; width=&quot;620&quot; /&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;
Configuring hard drives for Android may seem complex, but it takes just a few moments.&lt;/div&gt;
&lt;/div&gt;
Now select the &lt;strong&gt;Bootable&lt;/strong&gt; option and press &lt;strong&gt;Enter&lt;/strong&gt;, select &lt;strong&gt;Write&lt;/strong&gt; and press &lt;strong&gt;Enter&lt;/strong&gt;, and then type the word &lt;strong&gt;yes&lt;/strong&gt; before pressing &lt;strong&gt;Enter&lt;/strong&gt; once again. Select &lt;strong&gt;Quit&lt;/strong&gt;, choose the partition you’ve just created and press &lt;strong&gt;Enter&lt;/strong&gt;.&lt;br /&gt;

When prompted, select the option to use the &lt;strong&gt;ext3&lt;/strong&gt; file system and select &lt;strong&gt;Yes&lt;/strong&gt; to confirm your choice. The GRUB bootloader takes care of launching Android, so select &lt;strong&gt;Yes&lt;/strong&gt; to install it and then select &lt;strong&gt;Yes&lt;/strong&gt; again to make the /system directory writeable.&lt;br /&gt;

&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_35349&quot; style=&quot;width: 630px;&quot;&gt;
&lt;img alt=&quot;The correct drive format must be selected for Android to work properly, so take care during configuration.&quot; class=&quot;size-full wp-image-35349&quot; data-cfsrc=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_10.png&quot; height=&quot;328&quot; src=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_10.png&quot; width=&quot;620&quot; /&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;
The correct drive format must be selected for Android to work properly, so take care during configuration.&lt;/div&gt;
&lt;/div&gt;
It won’t be long before Android boots, and at this point you should remove the virtual CD from the drive. Click the &lt;strong&gt;Devices&lt;/strong&gt; menu and select &lt;strong&gt;CD/DVD Devices&lt;/strong&gt; followed by &lt;strong&gt;Remove disk from virtual drive&lt;/strong&gt;.&lt;br /&gt;

&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_35350&quot; style=&quot;width: 528px;&quot;&gt;
&lt;img alt=&quot;It&#39;s a slightly time-consuming process, but getting Android on your PC is very rewarding.&quot; class=&quot;size-full wp-image-35350&quot; data-cfsrc=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_11.png&quot; height=&quot;233&quot; src=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_11.png&quot; width=&quot;518&quot; /&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;
It’s a slightly time-consuming process, but getting Android on your PC is very rewarding.&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;
Step 5: Almost There!&lt;/h2&gt;
You might find that Android takes a little while to boot up — at 
least the first time around — and you’ll then have to run through the 
initial configuration just like you did the first time you switched on 
your phone or tablet.&lt;br /&gt;

Should you find that your mouse does not work and you are unable to click within Android, click the &lt;strong&gt;Machine&lt;/strong&gt; menu in Virtual Box and then click &lt;strong&gt;Disable Mouse Integration&lt;/strong&gt;. You may also find it useful to click &lt;strong&gt;View&lt;/strong&gt; followed by &lt;strong&gt;Switch to Scale Mode&lt;/strong&gt; if you find the mouse acts erratically — you can switch back to regular mode by pressing the right &lt;strong&gt;Ctrl&lt;/strong&gt; key and &lt;strong&gt;C&lt;/strong&gt; at the same time.&lt;br /&gt;

&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_35351&quot; style=&quot;width: 630px;&quot;&gt;
&lt;img alt=&quot;The first time you run Android you&#39;ll have to set it up just like you did on your phone or tablet.&quot; class=&quot;size-full wp-image-35351&quot; data-cfsrc=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_12.png&quot; height=&quot;411&quot; src=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_12.png&quot; width=&quot;620&quot; /&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;
The first time you run Android you’ll have to set it up just like you did on your phone or tablet.&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;tip&quot;&gt;
You can ignore any steps related to connecting to a 
wireless network as VirtualBox will just make use of your computer 
connection without the need for additional configuration.&lt;/div&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_35352&quot; style=&quot;width: 630px;&quot;&gt;
&lt;img alt=&quot;Running Android within Windows can feel strange to start with, but it&#39;s also great fun!&quot; class=&quot;size-full wp-image-35352&quot; data-cfsrc=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_13.png&quot; height=&quot;490&quot; src=&quot;http://cdn.appstorm.net/android.appstorm.net/android/files/2013/07/virtual_android_13.png&quot; width=&quot;620&quot; /&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;
Running Android within Windows can feel strange to start with, but it’s also great fun!&lt;/div&gt;
&lt;/div&gt;
Now it’s time to pay a visit to Google Play and start downloading 
apps!&amp;nbsp;Let us know how you get on, particularly if you think up any 
interesting uses for a virtualized copy of Android.&lt;br /&gt;

&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/7145982417795026275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2014/01/how-to-install-android-on-your-pc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/7145982417795026275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/7145982417795026275'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2014/01/how-to-install-android-on-your-pc.html' title='How to Install Android on Your PC'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-8761411648517572761</id><published>2013-11-27T09:21:00.000+08:00</published><updated>2013-11-27T09:21:02.090+08:00</updated><title type='text'>Send WhatsApp messages via PHP using WhatsAPI</title><content type='html'>&lt;br /&gt;
I recently discovered that once you have acquired your &lt;a href=&quot;http://www.whatsapp.com/&quot;&gt;WhatsApp&lt;/a&gt; account password, it’s relatively easy to &lt;b&gt;send and receive WhatsApp messages via PHP&lt;/b&gt;. Using the PHP-based framework &lt;a href=&quot;https://github.com/venomous0x/WhatsAPI&quot;&gt;WhatsAPI&lt;/a&gt;, a simple WhatsApp notifier script only has a dozen lines of code. &lt;br /&gt;

This tiny tutorial shows how to use the two very basic functions of 
WhatsAPI, namely to send simple outgoing messages to any number and to 
listen for new incoming messages from your own WhatsApp account. This is
 the second part of a two-part tutorial. The first part demonstrated how
 to sniff the WhatsApp password from your Android phone or iPhone.&lt;br /&gt;
&lt;br /&gt;

&lt;span id=&quot;more-1322&quot;&gt;&lt;/span&gt;&lt;br /&gt;

&lt;hr /&gt;
&lt;br /&gt;&lt;h3 id=&quot;Get-your-WhatsApp-password&quot;&gt;
1. Get your WhatsApp password &lt;/h3&gt;
This little demonstration only works if you have already obtained 
your WhatsApp password. If you have not and have no idea how to do it, 
please check out the first part of this tutorial.&lt;br /&gt;

&lt;h3 id=&quot;Get-WhatsAPI-and-send-receive-messages&quot;&gt;
2. Get WhatsAPI and send/receive messages &lt;/h3&gt;
Assuming you have your WhatsApp password at hand, let’s see how easy the usage of WhatsAPI is.&lt;br /&gt;

&lt;h4 id=&quot;Download-WhatsAPI-and-test-scripts&quot;&gt;
2.1. Download WhatsAPI and test scripts &lt;/h4&gt;
Downloading WhatsAPI is really simply since it is hosted on &lt;a href=&quot;https://github.com/&quot;&gt;Github&lt;/a&gt;. Simply make a new directory and retrieve WhatsAPI from Github.&lt;br /&gt;



  &lt;div class=&quot;crayon-syntax crayon-theme-eclipse crayon-font-monospace crayon-os-mac print-yes&quot; data-settings=&quot; minimize scroll-always&quot; id=&quot;crayon-52953762d6ab7406007970&quot; style=&quot;clear: both; float: none; font-size: 12px ! important; height: auto; line-height: 15px ! important; margin-bottom: 12px; margin-top: 12px;&quot;&gt;
  
   &lt;div class=&quot;crayon-toolbar&quot; data-settings=&quot; show&quot; style=&quot;font-size: 12px !important; height: 18px !important; line-height: 18px !important;&quot;&gt;
&lt;span class=&quot;crayon-title&quot;&gt;&lt;/span&gt;
   &lt;div class=&quot;crayon-tools&quot; style=&quot;font-size: 12px !important; height: 18px !important; line-height: 18px !important;&quot;&gt;
&lt;span class=&quot;crayon-language&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;crayon-plain-wrap&quot;&gt;
&lt;textarea class=&quot;crayon-plain print-no&quot; data-settings=&quot;dblclick&quot; readonly=&quot;readonly&quot; style=&quot;-moz-tab-size: 4; font-size: 12px ! important; line-height: 15px ! important; opacity: 0; z-index: 0;&quot; wrap=&quot;off&quot;&gt;mkdir whatsapp
cd whatsapp
sudo apt-get install git
git clone https://github.com/venomous0x/WhatsAPI&lt;/textarea&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-main&quot; style=&quot;max-height: 500px; position: relative; z-index: 1;&quot;&gt;
    &lt;table class=&quot;crayon-table&quot;&gt;
     &lt;tbody&gt;
&lt;tr class=&quot;crayon-row&quot;&gt;
    &lt;td class=&quot;crayon-nums &quot; data-settings=&quot;show&quot;&gt;
     &lt;div class=&quot;crayon-nums-content&quot; style=&quot;font-size: 12px !important; line-height: 15px !important;&quot;&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ab7406007970-1&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ab7406007970-2&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ab7406007970-3&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ab7406007970-4&quot;&gt;
4&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
      &lt;td class=&quot;crayon-code&quot;&gt;&lt;div class=&quot;crayon-pre&quot; style=&quot;font-size: 12px !important; line-height: 15px !important;&quot;&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ab7406007970-1&quot;&gt;
&lt;span class=&quot;crayon-r&quot;&gt;mkdir&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;whatsapp&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ab7406007970-2&quot;&gt;
&lt;span class=&quot;crayon-r&quot;&gt;cd&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;whatsapp&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ab7406007970-3&quot;&gt;
&lt;span class=&quot;crayon-e&quot;&gt;sudo &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;apt&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;crayon-r&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;install &lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;git&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ab7406007970-4&quot;&gt;
&lt;span class=&quot;crayon-e&quot;&gt;git &lt;/span&gt;&lt;span class=&quot;crayon-r&quot;&gt;clone&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;https&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-c&quot;&gt;//github.com/venomous0x/WhatsAPI&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
     &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Once you have done that, you can check out the current structure of the project. There is also a file called &lt;a href=&quot;https://github.com/venomous0x/WhatsAPI/blob/master/src/php/EXAMPLES.php&quot;&gt;EXAMPLES.php&lt;/a&gt; that shows a few more examples. &lt;br /&gt;

I also prepared a few small scripts that you can use as a basis to make your own scripts:&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://cdn1.philippheckel.com/wp-content/uploads/2013/07/whatsapp_whatsapi_send.php.txt&quot;&gt;whatsapp_whatsapi_send.php&lt;/a&gt;&lt;/b&gt; is a command line script to send any strings to a given number.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://cdn1.philippheckel.com/wp-content/uploads/2013/07/whatsapp_whatsapi_listen.php.txt&quot;&gt;whatsapp_whatsapi_listen.php&lt;/a&gt;&lt;/b&gt; listens for incoming messages and outputs them to STDOUT.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://cdn1.philippheckel.com/wp-content/uploads/2013/07/whatsapp_whatsapi_config.php.txt&quot;&gt;whatsapp_whatsapi_config.php&lt;/a&gt;&lt;/b&gt; defines the configuration (source/destination numbers and WhatsApp password) for the send/listen scripts&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://cdn1.philippheckel.com/wp-content/uploads/2013/07/whatsapp_whatsapi_example_messages.txt&quot;&gt;whatsapp_whatsapi_example_messages.txt&lt;/a&gt;&lt;/b&gt; shows the structure of a few WhatsApp messages (&lt;tt&gt;print_r($msgs)&lt;/tt&gt; output).&lt;/li&gt;
&lt;/ul&gt;
To download my two minimal examples, run the following commands, and 
edit the file whatsapp_whatsapi_config.php to set your own user 
credentials:&lt;br /&gt;


  &lt;div class=&quot;crayon-syntax crayon-theme-eclipse crayon-font-monospace crayon-os-mac print-yes&quot; data-settings=&quot; minimize scroll-always&quot; id=&quot;crayon-52953762d6ac6139872727&quot; style=&quot;clear: both; float: none; font-size: 12px ! important; height: auto; line-height: 15px ! important; margin-bottom: 12px; margin-top: 12px;&quot;&gt;
  
   &lt;div class=&quot;crayon-toolbar&quot; data-settings=&quot; show&quot; style=&quot;font-size: 12px !important; height: 18px !important; line-height: 18px !important;&quot;&gt;
&lt;span class=&quot;crayon-title&quot;&gt;&lt;/span&gt;
   &lt;div class=&quot;crayon-tools&quot; style=&quot;font-size: 12px !important; height: 18px !important; line-height: 18px !important;&quot;&gt;
&lt;span class=&quot;crayon-language&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;crayon-plain-wrap&quot;&gt;
&lt;textarea class=&quot;crayon-plain print-no&quot; data-settings=&quot;dblclick&quot; readonly=&quot;readonly&quot; style=&quot;-moz-tab-size: 4; font-size: 12px ! important; line-height: 15px ! important; opacity: 0; z-index: 0;&quot; wrap=&quot;off&quot;&gt;wget
 -O whatsapp_whatsapi_send.php 
http://blog.philippheckel.com/uploads/2013/07/whatsapp_whatsapi_send.php.txt
wget
 -O whatsapp_whatsapi_listen.php 
http://blog.philippheckel.com/uploads/2013/07/whatsapp_whatsapi_listen.php.txt
wget
 -O whatsapp_whatsapi_config.php 
http://blog.philippheckel.com/uploads/2013/07/whatsapp_whatsapi_config.php.txt
wget
 -O whatsapp_whatsapi_example_messages.txt 
http://blog.philippheckel.com/uploads/2013/07/whatsapp_whatsapi_example_messages.txt
chmod
 +x *.php
vi whatsapp_whatsapi_config.php&lt;/textarea&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-main&quot; style=&quot;max-height: 500px; position: relative; z-index: 1;&quot;&gt;
    &lt;table class=&quot;crayon-table&quot;&gt;
     &lt;tbody&gt;
&lt;tr class=&quot;crayon-row&quot;&gt;
    &lt;td class=&quot;crayon-nums &quot; data-settings=&quot;show&quot;&gt;
     &lt;div class=&quot;crayon-nums-content&quot; style=&quot;font-size: 12px !important; line-height: 15px !important;&quot;&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ac6139872727-1&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ac6139872727-2&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ac6139872727-3&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ac6139872727-4&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ac6139872727-5&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ac6139872727-6&quot;&gt;
6&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
      &lt;td class=&quot;crayon-code&quot;&gt;&lt;div class=&quot;crayon-pre&quot; style=&quot;font-size: 12px !important; line-height: 15px !important;&quot;&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ac6139872727-1&quot;&gt;
&lt;span class=&quot;crayon-i&quot;&gt;wget&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;O&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;whatsapp_whatsapi_send&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;.php&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-c&quot;&gt;//blog.philippheckel.com/uploads/2013/07/whatsapp_whatsapi_send.php.txt&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ac6139872727-2&quot;&gt;
&lt;span class=&quot;crayon-i&quot;&gt;wget&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;O&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;whatsapp_whatsapi_listen&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;.php&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-c&quot;&gt;//blog.philippheckel.com/uploads/2013/07/whatsapp_whatsapi_listen.php.txt&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ac6139872727-3&quot;&gt;
&lt;span class=&quot;crayon-i&quot;&gt;wget&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;O&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;whatsapp_whatsapi_config&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;.php&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-c&quot;&gt;//blog.philippheckel.com/uploads/2013/07/whatsapp_whatsapi_config.php.txt&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ac6139872727-4&quot;&gt;
&lt;span class=&quot;crayon-i&quot;&gt;wget&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;O&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;whatsapp_whatsapi_example_messages&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;.txt&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-c&quot;&gt;//blog.philippheckel.com/uploads/2013/07/whatsapp_whatsapi_example_messages.txt&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ac6139872727-5&quot;&gt;
&lt;span class=&quot;crayon-r&quot;&gt;chmod&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;.php&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ac6139872727-6&quot;&gt;
&lt;span class=&quot;crayon-r&quot;&gt;vi&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;whatsapp_whatsapi_config&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;.php&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
     &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id=&quot;Send-WhatsApp-messages&quot;&gt;
2.2. Send WhatsApp messages &lt;/h4&gt;
As you might know from your smartphone client, you can send different
 kind of messages through WhatsApp: Besides text, you can send audio and
 video files, locations and contacts. WhatsAPI can do all of those 
things in just one line of code. &lt;br /&gt;

My simple sample script &lt;a href=&quot;http://cdn1.philippheckel.com/wp-content/uploads/2013/07/whatsapp_whatsapi_send.php.txt&quot;&gt;whatsapp_whatsapi_send.php&lt;/a&gt;
 just shows how to send a regular text message. The script is meant to 
be called by the command line, but the code can also be used in a web 
application:&lt;br /&gt;



  &lt;div class=&quot;crayon-syntax crayon-theme-eclipse crayon-font-monospace crayon-os-mac print-yes&quot; data-settings=&quot; minimize scroll-always&quot; id=&quot;crayon-52953762d6acd827021707&quot; style=&quot;clear: both; float: none; font-size: 12px ! important; height: auto; line-height: 15px ! important; margin-bottom: 12px; margin-top: 12px;&quot;&gt;
  
   &lt;div class=&quot;crayon-toolbar&quot; data-settings=&quot; show&quot; style=&quot;font-size: 12px !important; height: 18px !important; line-height: 18px !important;&quot;&gt;
&lt;span class=&quot;crayon-title&quot;&gt;&lt;/span&gt;
   &lt;div class=&quot;crayon-tools&quot; style=&quot;font-size: 12px !important; height: 18px !important; line-height: 18px !important;&quot;&gt;
&lt;span class=&quot;crayon-mixed-highlight&quot; title=&quot;Contains Mixed Languages&quot;&gt;&lt;/span&gt;&lt;span class=&quot;crayon-language&quot;&gt;PHP&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;crayon-plain-wrap&quot;&gt;
&lt;textarea class=&quot;crayon-plain print-no&quot; data-settings=&quot;dblclick&quot; readonly=&quot;readonly&quot; style=&quot;-moz-tab-size: 4; font-size: 12px ! important; line-height: 15px ! important; opacity: 0; z-index: 0;&quot; wrap=&quot;off&quot;&gt;#!/usr/bin/php
&lt;?php

require_once(&#39;whatsapp_whatsapi_config.php&#39;);

$destinationPhone = &#39;495553333333&#39;;

$w = new WhatsProt($userPhone, $userIdentity, $userName, $debug);
$w-&gt;Connect();
$w-&gt;LoginWithPassword($password);
$w-&gt;Message($destinationPhone, $argv[1]);

?&gt;&lt;/textarea&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-main&quot; style=&quot;max-height: 500px; position: relative; z-index: 1;&quot;&gt;
    &lt;table class=&quot;crayon-table&quot;&gt;
     &lt;tbody&gt;
&lt;tr class=&quot;crayon-row&quot;&gt;
    &lt;td class=&quot;crayon-nums &quot; data-settings=&quot;show&quot;&gt;
     &lt;div class=&quot;crayon-nums-content&quot; style=&quot;font-size: 12px !important; line-height: 15px !important;&quot;&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6acd827021707-1&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6acd827021707-2&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6acd827021707-3&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6acd827021707-4&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6acd827021707-5&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6acd827021707-6&quot;&gt;
6&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6acd827021707-7&quot;&gt;
7&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6acd827021707-8&quot;&gt;
8&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6acd827021707-9&quot;&gt;
9&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6acd827021707-10&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6acd827021707-11&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6acd827021707-12&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6acd827021707-13&quot;&gt;
13&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
      &lt;td class=&quot;crayon-code&quot;&gt;&lt;div class=&quot;crayon-pre&quot; style=&quot;font-size: 12px !important; line-height: 15px !important;&quot;&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6acd827021707-1&quot;&gt;
&lt;span class=&quot;crayon-c&quot;&gt;#!/usr/bin/php&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6acd827021707-2&quot;&gt;
&lt;span class=&quot;crayon-ta&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6acd827021707-3&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6acd827021707-4&quot;&gt;
&lt;span class=&quot;crayon-k &quot;&gt;require_once&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-s&quot;&gt;&#39;whatsapp_whatsapi_config.php&#39;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6acd827021707-5&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6acd827021707-6&quot;&gt;
&lt;span class=&quot;crayon-v&quot;&gt;$destinationPhone&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot;&gt;&#39;495553333333&#39;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6acd827021707-7&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6acd827021707-8&quot;&gt;
&lt;span class=&quot;crayon-v&quot;&gt;$w&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-r&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;WhatsProt&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;$userPhone&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;$userIdentity&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;$userName&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;$debug&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6acd827021707-9&quot;&gt;
&lt;span class=&quot;crayon-v&quot;&gt;$w&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;Connect&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6acd827021707-10&quot;&gt;
&lt;span class=&quot;crayon-v&quot;&gt;$w&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;LoginWithPassword&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;$password&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6acd827021707-11&quot;&gt;
&lt;span class=&quot;crayon-v&quot;&gt;$w&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;Message&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;$destinationPhone&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;$argv&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6acd827021707-12&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6acd827021707-13&quot;&gt;
&lt;span class=&quot;crayon-ta&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
     &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
The script includes the configuration for your WhatsApp username, 
password and display name. It’s very easy to use and quite 
self-explanatory: The &lt;tt&gt;WhatsProt&lt;/tt&gt; class is the only thing you need. Simple &lt;tt&gt;Connect&lt;/tt&gt; to the WhatsApp servers and &lt;tt&gt;LoginWithPassword&lt;/tt&gt; to authenticate yourself. After that, you can use the following methods:&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;&lt;tt&gt;Message($to, $msg)&lt;/tt&gt;: Simply send a regular text message to $to.&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;MessageImage($to, $imageURI)&lt;/tt&gt;: Send images by URL or local path (jpg) to $to.&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;MessageVideo($to, $videoURI)&lt;/tt&gt;: Send videos by URL or local path (mp4) to $to.&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;MessageAudio($to, $audioURI)&lt;/tt&gt;: Send audios by URL or local path (mp3) to $to.&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;Location($to, $lng, $lat)&lt;/tt&gt;: Send GPS coordinates to $to&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;vCard($to, $vCardName, $vCard)&lt;/tt&gt;: Send a vCard to $to.&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;WaitForReceipt()&lt;/tt&gt;: Wait for the WhatsApp servers to confirm the delivery.&lt;/li&gt;
&lt;/ul&gt;
The tiny script from above obviously only sends plain text messages. You can use it from the command line like this:&lt;br /&gt;


  &lt;div class=&quot;crayon-syntax crayon-theme-eclipse crayon-font-monospace crayon-os-mac print-yes&quot; data-settings=&quot; minimize scroll-always&quot; id=&quot;crayon-52953762d6ad5533368375&quot; style=&quot;clear: both; float: none; font-size: 12px ! important; height: auto; line-height: 15px ! important; margin-bottom: 12px; margin-top: 12px;&quot;&gt;
  
   &lt;div class=&quot;crayon-toolbar&quot; data-settings=&quot; show&quot; style=&quot;font-size: 12px !important; height: 18px !important; line-height: 18px !important;&quot;&gt;
&lt;span class=&quot;crayon-title&quot;&gt;&lt;/span&gt;
   &lt;/div&gt;
&lt;div class=&quot;crayon-plain-wrap&quot;&gt;
&lt;textarea class=&quot;crayon-plain print-no&quot; data-settings=&quot;dblclick&quot; readonly=&quot;readonly&quot; style=&quot;-moz-tab-size: 4; font-size: 12px ! important; line-height: 15px ! important; opacity: 0; z-index: 0;&quot; wrap=&quot;off&quot;&gt;./whatsapp_whatsapi_send.php &quot;Warning: CPU temperature at 65°C&quot;&lt;/textarea&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-main&quot; style=&quot;max-height: 500px; position: relative; z-index: 1;&quot;&gt;
    &lt;table class=&quot;crayon-table&quot;&gt;
     &lt;tbody&gt;
&lt;tr class=&quot;crayon-row&quot;&gt;
    &lt;td class=&quot;crayon-nums &quot; data-settings=&quot;show&quot;&gt;
     &lt;div class=&quot;crayon-nums-content&quot; style=&quot;font-size: 12px !important; line-height: 15px !important;&quot;&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ad5533368375-1&quot;&gt;
1&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
      &lt;td class=&quot;crayon-code&quot;&gt;&lt;div class=&quot;crayon-pre&quot; style=&quot;font-size: 12px !important; line-height: 15px !important;&quot;&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ad5533368375-1&quot;&gt;
&lt;span class=&quot;crayon-sy&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;whatsapp_whatsapi_send&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;php&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot;&gt;&quot;Warning: CPU temperature at 65°C&quot;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
     &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
The script is particularly useful as a &lt;b&gt;WhatsApp notifier&lt;/b&gt;, 
allowing you to receive notifications from your servers whenever you 
want — for example, if the CPU temperature rises above a certain 
threshold, the load is too high for a certain amount of time or one of 
your scripts failed/succeeded. This is particularly interesting in 
combination with a system monitoring service such as &lt;a href=&quot;http://www.nagios.org/&quot;&gt;Nagios&lt;/a&gt; or &lt;a href=&quot;http://mmonit.com/&quot;&gt;Monit&lt;/a&gt;.&lt;br /&gt;

&lt;h4 id=&quot;Receive-WhatsApp-messages&quot;&gt;
2.3. Receive WhatsApp messages &lt;/h4&gt;
To be able to receive WhatsApp messages using PHP, you need to listen for new messages. WhatsAPI’s &lt;tt&gt;PollMessages&lt;/tt&gt;
 does exactly that. It reads messages from the WhatsApp server socket 
and puts them in a local queue for processing. The method blocks if 
there are no messages and waits for the server to send a message 
indefinitely — just like any other server does. Using &lt;tt&gt;GetMessages&lt;/tt&gt; you can pull the messages from the queue and process them in your application.&lt;br /&gt;

A minimal script would look very similar to the example from above, except that instead of calling &lt;tt&gt;Message()&lt;/tt&gt;, you need to call &lt;tt&gt;PollMessages()&lt;/tt&gt; and &lt;tt&gt;GetMessages()&lt;/tt&gt; in a server loop:&lt;br /&gt;


  &lt;div class=&quot;crayon-syntax crayon-theme-eclipse crayon-font-monospace crayon-os-mac print-yes&quot; data-settings=&quot; minimize scroll-always&quot; id=&quot;crayon-52953762d6adb558144962&quot; style=&quot;clear: both; float: none; font-size: 12px ! important; height: auto; line-height: 15px ! important; margin-bottom: 12px; margin-top: 12px;&quot;&gt;
  
   &lt;div class=&quot;crayon-toolbar&quot; data-settings=&quot; show&quot; style=&quot;font-size: 12px !important; height: 18px !important; line-height: 18px !important;&quot;&gt;
&lt;span class=&quot;crayon-title&quot;&gt;&lt;/span&gt;
   &lt;div class=&quot;crayon-tools&quot; style=&quot;font-size: 12px !important; height: 18px !important; line-height: 18px !important;&quot;&gt;
&lt;span class=&quot;crayon-mixed-highlight&quot; title=&quot;Contains Mixed Languages&quot;&gt;&lt;/span&gt;&lt;span class=&quot;crayon-language&quot;&gt;PHP&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;crayon-plain-wrap&quot;&gt;
&lt;textarea class=&quot;crayon-plain print-no&quot; data-settings=&quot;dblclick&quot; readonly=&quot;readonly&quot; style=&quot;-moz-tab-size: 4; font-size: 12px ! important; line-height: 15px ! important; opacity: 0; z-index: 0;&quot; wrap=&quot;off&quot;&gt;&lt;?php

require_once(&#39;whatsapp_whatsapi_config.php&#39;);

$w = new WhatsProt($userPhone, $userIdentity, $userName, $debug);
$w-&gt;Connect();
$w-&gt;LoginWithPassword($password);

while (true) {
    $w-&gt;PollMessages();
    $msgs = $w-&gt;GetMessages();
    // Do something with the messages ...
}

?&gt;&lt;/textarea&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-main&quot; style=&quot;max-height: 500px; position: relative; z-index: 1;&quot;&gt;
    &lt;table class=&quot;crayon-table&quot;&gt;
     &lt;tbody&gt;
&lt;tr class=&quot;crayon-row&quot;&gt;
    &lt;td class=&quot;crayon-nums &quot; data-settings=&quot;show&quot;&gt;
     &lt;div class=&quot;crayon-nums-content&quot; style=&quot;font-size: 12px !important; line-height: 15px !important;&quot;&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6adb558144962-1&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6adb558144962-2&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6adb558144962-3&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6adb558144962-4&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6adb558144962-5&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6adb558144962-6&quot;&gt;
6&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6adb558144962-7&quot;&gt;
7&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6adb558144962-8&quot;&gt;
8&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6adb558144962-9&quot;&gt;
9&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6adb558144962-10&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6adb558144962-11&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6adb558144962-12&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6adb558144962-13&quot;&gt;
13&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6adb558144962-14&quot;&gt;
14&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6adb558144962-15&quot;&gt;
15&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
      &lt;td class=&quot;crayon-code&quot;&gt;&lt;div class=&quot;crayon-pre&quot; style=&quot;font-size: 12px !important; line-height: 15px !important;&quot;&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6adb558144962-1&quot;&gt;
&lt;span class=&quot;crayon-ta&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6adb558144962-2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6adb558144962-3&quot;&gt;
&lt;span class=&quot;crayon-k &quot;&gt;require_once&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-s&quot;&gt;&#39;whatsapp_whatsapi_config.php&#39;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6adb558144962-4&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6adb558144962-5&quot;&gt;
&lt;span class=&quot;crayon-v&quot;&gt;$w&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-r&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;WhatsProt&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;$userPhone&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;$userIdentity&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;$userName&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;$debug&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6adb558144962-6&quot;&gt;
&lt;span class=&quot;crayon-v&quot;&gt;$w&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;Connect&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6adb558144962-7&quot;&gt;
&lt;span class=&quot;crayon-v&quot;&gt;$w&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;LoginWithPassword&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;$password&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6adb558144962-8&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6adb558144962-9&quot;&gt;
&lt;span class=&quot;crayon-st&quot;&gt;while&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-t&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6adb558144962-10&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;$w&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;PollMessages&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6adb558144962-11&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;$msgs&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;$w&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;GetMessages&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6adb558144962-12&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-c&quot;&gt;// Do something with the messages ...&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6adb558144962-13&quot;&gt;
&lt;span class=&quot;crayon-sy&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6adb558144962-14&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6adb558144962-15&quot;&gt;
&lt;span class=&quot;crayon-ta&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
     &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Each WhatsApp message has a set of standard attributes (&lt;tt&gt;$m-&amp;gt;_attributeHash&lt;/tt&gt;) such as &lt;tt&gt;from&lt;/tt&gt; (sender number) or &lt;tt&gt;t&lt;/tt&gt;
 (send timestamp). Additionally, it has different kind of child nodes 
that contain additional/optional information, depending on what type of 
message it is: a &lt;tt&gt;notify&lt;/tt&gt; child node, for instance, tells the conversation partner that he or she is online and still writing, and the &lt;tt&gt;body&lt;/tt&gt; child node contains the text contents. There are many more of these. You can see for yourself by calling &lt;tt&gt;print_r($msgs)&lt;/tt&gt;. &lt;br /&gt;

The following snippet shows an excerpt of one message — refer to  &lt;a href=&quot;http://cdn1.philippheckel.com/wp-content/uploads/2013/07/whatsapp_whatsapi_example_messages.txt&quot;&gt;this example output&lt;/a&gt; to see more:&lt;br /&gt;



  &lt;div class=&quot;crayon-syntax crayon-theme-eclipse crayon-font-monospace crayon-os-mac print-yes&quot; data-settings=&quot; minimize scroll-always&quot; id=&quot;crayon-52953762d6ae2038852456&quot; style=&quot;clear: both; float: none; font-size: 12px ! important; height: auto; line-height: 15px ! important; margin-bottom: 12px; margin-top: 12px;&quot;&gt;
  
   &lt;div class=&quot;crayon-toolbar&quot; data-settings=&quot; show&quot; style=&quot;font-size: 12px !important; height: 18px !important; line-height: 18px !important;&quot;&gt;
&lt;span class=&quot;crayon-title&quot;&gt;&lt;/span&gt;
   &lt;/div&gt;
&lt;div class=&quot;crayon-plain-wrap&quot;&gt;
&lt;textarea class=&quot;crayon-plain print-no&quot; data-settings=&quot;dblclick&quot; readonly=&quot;readonly&quot; style=&quot;-moz-tab-size: 4; font-size: 12px ! important; line-height: 15px ! important; opacity: 0; z-index: 0;&quot; wrap=&quot;off&quot;&gt;ProtocolNode Object
(
    [_tag] =&gt; message
    [_attributeHash] =&gt; Array
        (
            [from] =&gt; 491231234567@s.whatsapp.net
            [id] =&gt; 1373204559-6
            [type] =&gt; chat
            [t] =&gt; 1373205620
        )

    [_children] =&gt; Array
        (
         ...
            [2] =&gt; ProtocolNode Object
                (
                    [_tag] =&gt; body
                    ...
                    [_children] =&gt; 
                    [_data] =&gt; Hallo blog readers
                )
        )
    [_data] =&gt; 
)&lt;/textarea&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-main&quot; style=&quot;max-height: 500px; position: relative; z-index: 1;&quot;&gt;
    &lt;table class=&quot;crayon-table&quot;&gt;
     &lt;tbody&gt;
&lt;tr class=&quot;crayon-row&quot;&gt;
    &lt;td class=&quot;crayon-nums &quot; data-settings=&quot;show&quot;&gt;
     &lt;div class=&quot;crayon-nums-content&quot; style=&quot;font-size: 12px !important; line-height: 15px !important;&quot;&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-1&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-2&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-3&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-4&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-5&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-6&quot;&gt;
6&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-7&quot;&gt;
7&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-8&quot;&gt;
8&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-9&quot;&gt;
9&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-10&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-11&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-12&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-13&quot;&gt;
13&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-14&quot;&gt;
14&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-15&quot;&gt;
15&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-16&quot;&gt;
16&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-17&quot;&gt;
17&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-18&quot;&gt;
18&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-19&quot;&gt;
19&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-20&quot;&gt;
20&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-21&quot;&gt;
21&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-22&quot;&gt;
22&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-23&quot;&gt;
23&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ae2038852456-24&quot;&gt;
24&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
      &lt;td class=&quot;crayon-code&quot;&gt;&lt;div class=&quot;crayon-pre&quot; style=&quot;font-size: 12px !important; line-height: 15px !important;&quot;&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ae2038852456-1&quot;&gt;
&lt;span class=&quot;crayon-e&quot;&gt;ProtocolNode &lt;/span&gt;&lt;span class=&quot;crayon-t&quot;&gt;Object&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ae2038852456-2&quot;&gt;
&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ae2038852456-3&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;_tag&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;message&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ae2038852456-4&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;_attributeHash&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-t&quot;&gt;Array&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ae2038852456-5&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ae2038852456-6&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;491231234567&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;whatsapp&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;net&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ae2038852456-7&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;1373204559&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;6&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ae2038852456-8&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;chat&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ae2038852456-9&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;t&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;1373205620&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ae2038852456-10&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ae2038852456-11&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ae2038852456-12&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;_children&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-t&quot;&gt;Array&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ae2038852456-13&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ae2038852456-14&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ae2038852456-15&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;ProtocolNode &lt;/span&gt;&lt;span class=&quot;crayon-t&quot;&gt;Object&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ae2038852456-16&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ae2038852456-17&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;_tag&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;body&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ae2038852456-18&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ae2038852456-19&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;_children&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ae2038852456-20&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;_data&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;Hallo &lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;blog &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;readers&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ae2038852456-21&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ae2038852456-22&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ae2038852456-23&quot;&gt;
&lt;span class=&quot;crayon-h&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;_data&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ae2038852456-24&quot;&gt;
&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
     &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
My example server script &lt;a href=&quot;http://cdn1.philippheckel.com/wp-content/uploads/2013/07/whatsapp_whatsapi_listen.php.txt&quot;&gt;whatsapp_whatsapi_listen.php&lt;/a&gt; extends the above snippet and processes the messages like this: It takes the time (&lt;tt&gt;t&lt;/tt&gt;) and sender number (&lt;tt&gt;from&lt;/tt&gt;) from &lt;tt&gt;$m-&amp;gt;_attributeHash&lt;/tt&gt; and the &lt;tt&gt;name&lt;/tt&gt; and &lt;tt&gt;_data&lt;/tt&gt; from the child nodes. Each non-empty message is printed to STDOUT, like this:&lt;br /&gt;



  &lt;div class=&quot;crayon-syntax crayon-theme-eclipse crayon-font-monospace crayon-os-mac print-yes&quot; data-settings=&quot; minimize scroll-always&quot; id=&quot;crayon-52953762d6ae9148510079&quot; style=&quot;clear: both; float: none; font-size: 12px ! important; height: auto; line-height: 15px ! important; margin-bottom: 12px; margin-top: 12px;&quot;&gt;
  
   &lt;div class=&quot;crayon-toolbar&quot; data-settings=&quot; show&quot; style=&quot;font-size: 12px !important; height: 18px !important; line-height: 18px !important;&quot;&gt;
&lt;span class=&quot;crayon-title&quot;&gt;&lt;/span&gt;
   &lt;div class=&quot;crayon-tools&quot; style=&quot;font-size: 12px !important; height: 18px !important; line-height: 18px !important;&quot;&gt;
&lt;span class=&quot;crayon-language&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;crayon-plain-wrap&quot;&gt;
&lt;textarea class=&quot;crayon-plain print-no&quot; data-settings=&quot;dblclick&quot; readonly=&quot;readonly&quot; style=&quot;-moz-tab-size: 4; font-size: 12px ! important; line-height: 15px ! important; opacity: 0; z-index: 0;&quot; wrap=&quot;off&quot;&gt;./whatsapp_whatsapi_listen.php 
[07/07/2013 15:57] From: 491231234567, Name: Philipp, Message: Hallo blog readers
[07/07/2013 15:57] From: 491231234567, Name: Philipp, Message: Everything I write is printed to STDOUT
[07/07/2013 15:57] From: 491231234567, Name: Philipp, Message: Exit&lt;/textarea&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-main&quot; style=&quot;max-height: 500px; position: relative; z-index: 1;&quot;&gt;
    &lt;table class=&quot;crayon-table&quot;&gt;
     &lt;tbody&gt;
&lt;tr class=&quot;crayon-row&quot;&gt;
    &lt;td class=&quot;crayon-nums &quot; data-settings=&quot;show&quot;&gt;
     &lt;div class=&quot;crayon-nums-content&quot; style=&quot;font-size: 12px !important; line-height: 15px !important;&quot;&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ae9148510079-1&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ae9148510079-2&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-52953762d6ae9148510079-3&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-52953762d6ae9148510079-4&quot;&gt;
4&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
      &lt;td class=&quot;crayon-code&quot;&gt;&lt;div class=&quot;crayon-pre&quot; style=&quot;font-size: 12px !important; line-height: 15px !important;&quot;&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ae9148510079-1&quot;&gt;
&lt;span class=&quot;crayon-sy&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;whatsapp_whatsapi_listen&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;.php&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ae9148510079-2&quot;&gt;
&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;07&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;07&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;2013&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;57&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;From&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;491231234567&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;Name&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;Philipp&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;Message&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;Hallo &lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;blog &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;readers&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-52953762d6ae9148510079-3&quot;&gt;
&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;07&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;07&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;2013&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;57&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;From&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;491231234567&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;Name&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;Philipp&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;Message&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;Everything&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;I&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-r&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-st&quot;&gt;is&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;printed &lt;/span&gt;&lt;span class=&quot;crayon-st&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;STDOUT&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-52953762d6ae9148510079-4&quot;&gt;
&lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;07&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;07&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;2013&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;57&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;From&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-cn&quot;&gt;491231234567&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;Name&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;Philipp&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;Message&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-r&quot;&gt;Exit&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
     &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
If the message body is “exit”, the script exits.&lt;br /&gt;
&lt;br /&gt;

That’s it. I hope this tutorial helped a little in understanding how 
WhatsAPI works. If you have any suggestions or questions, please let me 
know in the comments.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;source from&amp;nbsp; http://blog.philippheckel.com&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/8761411648517572761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2013/11/send-whatsapp-messages-via-php-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/8761411648517572761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/8761411648517572761'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2013/11/send-whatsapp-messages-via-php-using.html' title='Send WhatsApp messages via PHP using WhatsAPI'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-6594711612736223683</id><published>2013-11-10T09:03:00.004+08:00</published><updated>2014-04-23T09:37:49.607+08:00</updated><title type='text'>HACK- Candy Crush Saga v1.xx.0 (Multi Mods) – Android</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;http://ugeeko.com/wp-content/uploads/2013/05/candy-crush.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://ugeeko.com/wp-content/uploads/2013/05/candy-crush.jpg&quot; height=&quot;200&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
This hack is for Candy Crush Saga&amp;nbsp; on android devices. This hack uses the Install Hacked APK method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;text-decoration: underline;&quot;&gt;Hack Features:&lt;/span&gt;&lt;br /&gt;
Many different depending on file.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;text-decoration: underline;&quot;&gt;Instructions:&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Download the zip file provided at the bottom of the page.&lt;/li&gt;
&lt;li&gt;Extract the file.&lt;/li&gt;
&lt;li&gt;Transfer the APK file onto your device (preferably&amp;nbsp;SD card in&amp;nbsp;/sdcard/download/)&lt;/li&gt;
&lt;li&gt;Use a file explorer to navigate to the location of the saved APK (Should be /sdcard/download/)&lt;/li&gt;
&lt;li&gt;Click the APK and select install.&lt;/li&gt;
&lt;li&gt;Launch the game.&lt;/li&gt;
&lt;li&gt;Enjoy&lt;/li&gt;
&lt;/ol&gt;
&lt;span style=&quot;color: red;&quot;&gt;NOTE!&lt;/span&gt; If you are having Facebook connections follow the instructions below:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Uninstall original Candy Crush.&lt;/li&gt;
&lt;li&gt;Go into your Facebook account settings.&lt;/li&gt;
&lt;li&gt;Go to your app settings&lt;/li&gt;
&lt;li&gt;Remove Candy Crush&lt;/li&gt;
&lt;li&gt;Install modded APK&lt;/li&gt;
&lt;li&gt;Launch game and connect to Facebook&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;/ol&gt;
&lt;span style=&quot;text-decoration: underline;&quot;&gt;Hack:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://ugeeko.com/download/3201/&quot;&gt;Candy Crush Saga v1.28.0 &lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white; border: medium none; color: black; overflow: hidden; text-align: left; text-decoration: none;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;source from: http://www.ugeeko.com/ &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/6594711612736223683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2013/11/hack-candy-crush-saga-v1190-multi-mods.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/6594711612736223683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/6594711612736223683'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2013/11/hack-candy-crush-saga-v1190-multi-mods.html' title='HACK- Candy Crush Saga v1.xx.0 (Multi Mods) – Android'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-1848673483506041365</id><published>2013-03-05T20:17:00.001+08:00</published><updated>2013-03-05T20:32:41.128+08:00</updated><title type='text'>Android Location Based Services Application – GPS location</title><content type='html'>With the incorporation of GPS devices in smartphones, &lt;a href=&quot;http://en.wikipedia.org/wiki/Location-based_service&quot;&gt;Location Based Services&lt;/a&gt;
 (LBS) have become pretty hot the past few years. The iPhone was the 
first to give a huge boost to this kind of applications and now Android 
continues on the same path. In this tutorial, I will show you how to 
build your first LBS application for Android. The first step is 
retrieving the user’s current location and then using his coordinates to
 provide data for that location.&lt;br /&gt;
In general, the user’s pinpointing on the map is feasible in one of the following ways:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Using the GPS device that comes with the mobile&lt;/li&gt;
&lt;li&gt;Using the ID of the Cell that the user is currently served by&lt;/li&gt;
&lt;/ol&gt;
The
 first one is much easier and more accurate (since the second provides 
only an approximation). Since these days a big number of phones do have 
GPS devices onboard, we will use the first way.  The Android SDK’s 
emulator can emulate changes in the user’s location and provide dummy 
data for his coordinates.&lt;br /&gt;
Let’s get started by creating a new 
Android Project in Eclipse. I gave it the fancy name 
“AndroidLbsGeocodingProject” and used the properties as shown in the 
following image:&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIF6upB4EvnzcirptCdt_55AXhF27UjGk_cymwRWVZmh7T6ttEMxLWcXguSbEhsFk25m3NOBkMAxdeHPiJZkP1oN197NMNjlI-ArWT3oVfoYVkSudWt-wmZIVXmfQ1NUIxSdZpEOS0nmU/s1600/01-new-android-project.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIF6upB4EvnzcirptCdt_55AXhF27UjGk_cymwRWVZmh7T6ttEMxLWcXguSbEhsFk25m3NOBkMAxdeHPiJZkP1oN197NMNjlI-ArWT3oVfoYVkSudWt-wmZIVXmfQ1NUIxSdZpEOS0nmU/s320/01-new-android-project.png&quot; style=&quot;cursor: pointer; height: 320px; margin: 0px auto 10px; text-align: center; width: 306px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Note
 that I used the Android 1.5 platform version and  “3” as the SDK’s min 
version. The application is not going to use any of the new super-duper 
APIs, so I decided to go with one of the first versions for backwards 
compatibility. It is generally a good idea to support as many versions 
as possible. You can find information regarding the platform versions 
and their corresponding market share &lt;a href=&quot;http://developer.android.com/resources/dashboard/platform-versions.html&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
To
 start with, we will only add a button which will trigger the retrieval 
of the current location’s coordinates from a location provider. Thus, 
the “main.xml” file for the application’s interface will be as simple as
 this:&lt;br /&gt;
&lt;div class=&quot;syntaxhighlighter  &quot; id=&quot;highlighter_589473&quot;&gt;
&lt;div class=&quot;lines&quot;&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;?&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;xml&lt;/code&gt; &lt;code class=&quot;color1&quot;&gt;version&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;1.0&quot;&lt;/code&gt; &lt;code class=&quot;color1&quot;&gt;encoding&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;utf-8&quot;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;?&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;LinearLayout&lt;/code&gt; &lt;code class=&quot;color1&quot;&gt;xmlns:android&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;&lt;a href=&quot;http://schemas.android.com/apk/res/android&quot;&gt;http://schemas.android.com/apk/res/android&lt;/a&gt;&quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;color1&quot;&gt;android:orientation&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;vertical&quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;color1&quot;&gt;android:layout_width&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;fill_parent&quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;color1&quot;&gt;android:layout_height&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;fill_parent&quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;Button&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;color1&quot;&gt;android:id&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;@+id/retrieve_location_button&quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;color1&quot;&gt;android:text&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;Retrieve Location&quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;color1&quot;&gt;android:layout_width&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;wrap_content&quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;color1&quot;&gt;android:layout_height&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;wrap_content&quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;/&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;/&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;LinearLayout&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
In order to get started with the location capabilities of the Android API, the first step is to take reference of the &lt;a href=&quot;http://developer.android.com/reference/android/location/LocationManager.html&quot;&gt;LocationManager&lt;/a&gt; class, which provides access to the system location services. This is done via the &lt;a href=&quot;http://developer.android.com/reference/android/content/Context.html#getSystemService%28java.lang.String%29&quot;&gt;getSystemService&lt;/a&gt; of our activity (actually it inherits it from the &lt;a href=&quot;http://developer.android.com/reference/android/content/Context.html&quot;&gt;Context&lt;/a&gt; parent class). Then, we request updates of the device’s location using the method &lt;a href=&quot;http://developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates%28java.lang.String,%20long,%20float,%20android.location.LocationListener%29&quot;&gt;requestLocationUpdates&lt;/a&gt;.
 In that method, we provide the name of the preferred location provider 
(in our case GPS), the minimum time interval for notifications (in 
milliseconds), the minimum distance interval for notifications (in 
meters) and finally a class implementing the &lt;a href=&quot;http://developer.android.com/reference/android/location/LocationListener.html&quot;&gt;LocationListener&lt;/a&gt;
 interface. That interface declares methods for handling changes in the 
user’s location as well as changes in the location provider’s status. 
All the above can be translated into code as below:&lt;br /&gt;
&lt;div class=&quot;syntaxhighlighter  &quot; id=&quot;highlighter_279896&quot;&gt;
&lt;div class=&quot;lines&quot;&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;package&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;com.javacodegeeks.android.lbs;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;android.app.Activity;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;android.content.Context;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;android.location.Location;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;android.location.LocationListener;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;android.location.LocationManager;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;android.os.Bundle;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;android.view.View;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;android.view.View.OnClickListener;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;android.widget.Button;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;android.widget.Toast;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;LbsGeocodingActivity &lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;extends&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;Activity {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;private&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;static&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;final&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;long&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = &lt;/code&gt;&lt;code class=&quot;value&quot;&gt;1&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;; &lt;/code&gt;&lt;code class=&quot;comments&quot;&gt;// in Meters&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;17&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;private&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;static&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;final&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;long&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;MINIMUM_TIME_BETWEEN_UPDATES = &lt;/code&gt;&lt;code class=&quot;value&quot;&gt;1000&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;; &lt;/code&gt;&lt;code class=&quot;comments&quot;&gt;// in Milliseconds&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;18&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;19&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;protected&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;LocationManager locationManager;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;21&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;protected&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;Button retrieveLocationButton;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;22&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;23&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;color1&quot;&gt;@Override&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;24&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;void&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;onCreate(Bundle savedInstanceState) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;25&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;26&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;super&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;.onCreate(savedInstanceState);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;27&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;setContentView(R.layout.main);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;28&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;29&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;retrieveLocationButton = (Button) findViewById(R.id.retrieve_location_button);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;30&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;31&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;32&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;33&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;locationManager.requestLocationUpdates(&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;34&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;LocationManager.GPS_PROVIDER, &lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;35&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;MINIMUM_TIME_BETWEEN_UPDATES, &lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;36&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;37&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;new&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;MyLocationListener()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;38&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;39&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;40&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;retrieveLocationButton.setOnClickListener(&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;new&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;OnClickListener() {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;41&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;color1&quot;&gt;@Override&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;42&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;void&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;onClick(View v) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;43&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;showCurrentLocation();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;44&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;45&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;});&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;46&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;47&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;48&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;49&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;protected&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;void&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;showCurrentLocation() {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;50&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;51&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;52&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;53&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;if&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;(location != &lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;null&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;54&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;String message = String.format(&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;55&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;Current Location \n Longitude: %1$s \n Latitude: %2$s&quot;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;,&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;56&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;location.getLongitude(), location.getLatitude()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;57&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;58&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;Toast.makeText(LbsGeocodingActivity.&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;this&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;, message,&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;59&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;Toast.LENGTH_LONG).show();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;60&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;61&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;62&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;}&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;63&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;64&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;private&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;MyLocationListener &lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;implements&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;LocationListener {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;65&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;66&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;void&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;onLocationChanged(Location location) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;67&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;String message = String.format(&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;68&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;New Location \n Longitude: %1$s \n Latitude: %2$s&quot;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;,&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;69&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;location.getLongitude(), location.getLatitude()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;70&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;71&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;Toast.makeText(LbsGeocodingActivity.&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;this&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;, message, Toast.LENGTH_LONG).show();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;72&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;73&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;74&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;void&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;onStatusChanged(String s, &lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;int&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;i, Bundle b) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;75&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;Toast.makeText(LbsGeocodingActivity.&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;this&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;Provider status changed&quot;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;,&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;76&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;Toast.LENGTH_LONG).show();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;77&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;78&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;79&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;void&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;onProviderDisabled(String s) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;80&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;Toast.makeText(LbsGeocodingActivity.&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;this&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;,&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;81&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;Provider disabled by the user. GPS turned off&quot;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;,&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;82&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;Toast.LENGTH_LONG).show();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;83&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;84&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;85&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;void&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;onProviderEnabled(String s) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;86&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;Toast.makeText(LbsGeocodingActivity.&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;this&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;,&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;87&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;Provider enabled by the user. GPS turned on&quot;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;,&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;88&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;Toast.LENGTH_LONG).show();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;89&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;90&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;91&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;92&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;93&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;plain&quot;&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
For the &lt;a href=&quot;http://developer.android.com/reference/android/location/LocationListener.html&quot;&gt;LocationListener&lt;/a&gt; interface, we implemented the MyLocationListener inner class. The methods in that class just use &lt;a href=&quot;http://developer.android.com/reference/android/widget/Toast.html&quot;&gt;Toast&lt;/a&gt;s to provide info about the GPS status or any location changes. The only interface element is a &lt;a href=&quot;http://developer.android.com/reference/android/widget/Button.html&quot;&gt;Button&lt;/a&gt; which gets hooked up with a &lt;a href=&quot;http://developer.android.com/reference/android/view/View.OnClickListener.html&quot;&gt;OnClickListener&lt;/a&gt; and when it is clicked, the showCurrentLocation method is invoked. Then, the &lt;a href=&quot;http://developer.android.com/reference/android/location/LocationManager.html#getLastKnownLocation%28java.lang.String%29&quot;&gt;getLastKnownLocation&lt;/a&gt; of the LocationManager instance is executed returning the last known &lt;a href=&quot;http://developer.android.com/reference/android/location/Location.html&quot;&gt;Location&lt;/a&gt;. From a Location object we can get information regarding the user’s &lt;a href=&quot;http://developer.android.com/reference/android/location/Location.html#getAltitude%28%29&quot;&gt;altitude&lt;/a&gt;, &lt;a href=&quot;http://developer.android.com/reference/android/location/Location.html#getLatitude%28%29&quot;&gt;latitude&lt;/a&gt;, &lt;a href=&quot;http://developer.android.com/reference/android/location/Location.html#getLongitude%28%29&quot;&gt;longitude&lt;/a&gt;, &lt;a href=&quot;http://developer.android.com/reference/android/location/Location.html#getSpeed%28%29&quot;&gt;speed&lt;/a&gt; etc. In order to be able to run the above code, the necessary permissions have to be granted. These are:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_FINE_LOCATION&quot;&gt;ACCESS_FINE_LOCATION&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_MOCK_LOCATION&quot;&gt;ACCESS_MOCK_LOCATION&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_COARSE_LOCATION&quot;&gt;ACCESS_COARSE_LOCATION&lt;br /&gt; &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
Include those in the AndroidManifest.xml file, which will be as follows:&lt;br /&gt;
&lt;div class=&quot;syntaxhighlighter  &quot; id=&quot;highlighter_408853&quot;&gt;
&lt;div class=&quot;lines&quot;&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;?&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;xml&lt;/code&gt; &lt;code class=&quot;color1&quot;&gt;version&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;1.0&quot;&lt;/code&gt; &lt;code class=&quot;color1&quot;&gt;encoding&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;utf-8&quot;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;?&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;manifest&lt;/code&gt; &lt;code class=&quot;color1&quot;&gt;xmlns:android&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;&lt;a href=&quot;http://schemas.android.com/apk/res/android&quot;&gt;http://schemas.android.com/apk/res/android&lt;/a&gt;&quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;color1&quot;&gt;package&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;com.javacodegeeks.android.lbs&quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;color1&quot;&gt;android:versionCode&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;1&quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;color1&quot;&gt;android:versionName&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;1.0&quot;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;application&lt;/code&gt; &lt;code class=&quot;color1&quot;&gt;android:icon&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;@drawable/icon&quot;&lt;/code&gt; &lt;code class=&quot;color1&quot;&gt;android:label&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;@string/app_name&quot;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;activity&lt;/code&gt; &lt;code class=&quot;color1&quot;&gt;android:name&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;.LbsGeocodingActivity&quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;color1&quot;&gt;android:label&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;@string/app_name&quot;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;intent-filter&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;action&lt;/code&gt; &lt;code class=&quot;color1&quot;&gt;android:name&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;android.intent.action.MAIN&quot;&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;/&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;category&lt;/code&gt; &lt;code class=&quot;color1&quot;&gt;android:name&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;android.intent.category.LAUNCHER&quot;&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;/&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;/&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;intent-filter&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;/&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;activity&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;17&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;/&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;application&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;18&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;19&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;uses-permission&lt;/code&gt; &lt;code class=&quot;color1&quot;&gt;android:name&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;android.permission.ACCESS_FINE_LOCATION&quot;&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;/&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;uses-permission&lt;/code&gt; &lt;code class=&quot;color1&quot;&gt;android:name&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;android.permission.ACCESS_MOCK_LOCATION&quot;&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;/&amp;gt; &lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;21&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;uses-permission&lt;/code&gt; &lt;code class=&quot;color1&quot;&gt;android:name&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;android.permission.ACCESS_COARSE_LOCATION&quot;&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;/&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;22&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;23&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;uses-sdk&lt;/code&gt; &lt;code class=&quot;color1&quot;&gt;android:minSdkVersion&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;3&quot;&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;/&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;24&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;25&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;plain&quot;&gt;&amp;lt;/&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;manifest&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;&amp;gt; &lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
Next, use the &lt;a href=&quot;http://developer.android.com/guide/developing/eclipse-adt.html&quot;&gt;AVD Manager&lt;/a&gt; in order to create a new Android device and make sure that GPS support is included in the features:&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoykzeye1Z5C5MVSqEiiEdM03edDD7q6DSqUZS7ojgwdVh0HUuWdGJo73Dlch2gVeLaOGDKPnZjl6BuUBh-j0RNfXW7IB3fLu6F-aQfrdJSjkiZbQ5WuOql4oX7RhOCXeS2DyMR4SDPvo/s1600/02-avd-manager.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoykzeye1Z5C5MVSqEiiEdM03edDD7q6DSqUZS7ojgwdVh0HUuWdGJo73Dlch2gVeLaOGDKPnZjl6BuUBh-j0RNfXW7IB3fLu6F-aQfrdJSjkiZbQ5WuOql4oX7RhOCXeS2DyMR4SDPvo/s320/02-avd-manager.png&quot; style=&quot;cursor: pointer; height: 320px; margin: 0px auto 10px; text-align: center; width: 230px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Next, use “Run–&amp;gt; Run Configurations…” to create a new configuration for the project:&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi995m_7tsyiiBW2KOO35snG1Z1_s-xlumrIH8AB52VpFLiPkgblRTdifyz12zXHy7MuO7UonrsHH3edP__CUxT2soyNYv_V695ukk3WtA7jCBto2lbwH_GE76cQD_z4G-oK0bSCkG-SU/s1600/03-run-configuration.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi995m_7tsyiiBW2KOO35snG1Z1_s-xlumrIH8AB52VpFLiPkgblRTdifyz12zXHy7MuO7UonrsHH3edP__CUxT2soyNYv_V695ukk3WtA7jCBto2lbwH_GE76cQD_z4G-oK0bSCkG-SU/s320/03-run-configuration.png&quot; style=&quot;cursor: pointer; height: 210px; margin: 0px auto 10px; text-align: center; width: 320px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
If
 you hit Run, the emulator is started, but nothing will really happen 
when the button is clicked. That is because when the emulator starts, 
there is no last known location to be retrieved (the &lt;a href=&quot;http://developer.android.com/reference/android/location/Location.html&quot;&gt;Location&lt;/a&gt; instance that is returned is null).&lt;br /&gt;
We have to feed the emulator with some dummy data. Go  to the &lt;a href=&quot;http://developer.android.com/guide/developing/tools/ddms.html&quot;&gt;DDMS&lt;/a&gt;
 view of Eclipse and look for the “Emulation Control” tab. There, among 
other things, you will find the “Location Controls” section, which can 
send mock location data to the emulator.  In the “Manual” tab, just hit 
the “Send” button, there are already some coordinates set up.&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbyhGKhEdUE-a4A8-EvMEVWdBhBwgfdavKjZqL3fC0CiQpavEHEquri7DTG_TsC5q7us8gZY6_t_p9ahtkiS1MKkLZWMtLNRKMy9WhHT953w5J-weL2lyWT3A6cYJ9rM2WKExDxN0m04A/s1600/04-emulator-control-location.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbyhGKhEdUE-a4A8-EvMEVWdBhBwgfdavKjZqL3fC0CiQpavEHEquri7DTG_TsC5q7us8gZY6_t_p9ahtkiS1MKkLZWMtLNRKMy9WhHT953w5J-weL2lyWT3A6cYJ9rM2WKExDxN0m04A/s320/04-emulator-control-location.png&quot; style=&quot;cursor: pointer; height: 166px; margin: 0px auto 10px; text-align: center; width: 320px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
When
 the data are sent to the emulator’s GPS device, our listener will be 
triggered and the current location will be printed in the screen in the 
form of a &lt;a href=&quot;http://developer.android.com/reference/android/widget/Toast.html&quot;&gt;Toast&lt;/a&gt; notification.&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXYth6TIzocz8ooh2dLagfrxIyMWnda2nW4VdeKl22-LfCq7oqqRcHTnBtc-OtFE4q7G9oM7C4mz8M5ACv-OR7m0iZlox86zKMS8MF9tsTE0FVzJMtzvk3DERWJ2Siqf8dStqabiSOfxM/s1600/05-emulator-location.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXYth6TIzocz8ooh2dLagfrxIyMWnda2nW4VdeKl22-LfCq7oqqRcHTnBtc-OtFE4q7G9oM7C4mz8M5ACv-OR7m0iZlox86zKMS8MF9tsTE0FVzJMtzvk3DERWJ2Siqf8dStqabiSOfxM/s320/05-emulator-location.png&quot; style=&quot;cursor: pointer; height: 320px; margin: 0px auto 10px; text-align: center; width: 230px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Now,
 a last known location exists, so if you hit the “Retrieve Location” 
button, a not null location will be fetched and the coordinates will 
again be printed in the screen:&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhic3QfOwaajewnbBcWLCA8DMXjj9utPixk50ZETqazDVFwV0owcTsQWObdYVIWzMg1l9Nph8a2he1_vHFjmHtG5OZPUAqMb_ieJC3Mjjmp-QWsqld1HuVQdBWETMs0YoyYYLFuRFN4FhM/s1600/06-emulator-retrieve-location.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhic3QfOwaajewnbBcWLCA8DMXjj9utPixk50ZETqazDVFwV0owcTsQWObdYVIWzMg1l9Nph8a2he1_vHFjmHtG5OZPUAqMb_ieJC3Mjjmp-QWsqld1HuVQdBWETMs0YoyYYLFuRFN4FhM/s320/06-emulator-retrieve-location.png&quot; style=&quot;cursor: pointer; height: 320px; margin: 0px auto 10px; text-align: center; width: 240px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
That’s
 it. Now you are able to emulate changes in the user’s location and 
retrieve updates about them. In the next tutorial, I will show you how 
to leverage those coordinates in order to provide useful data to the 
user. For now, you can find the Eclipse project &lt;a href=&quot;http://dl.dropbox.com/u/7215751/JavaCodeGeeks/AndroidLbsGeocodingTutorial/AndroidLbsGeocodingProject.zip&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
Happy coding!!!&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;vcard author&quot;&gt;&lt;span class=&quot;fn&quot;&gt;source from: Nikos Maravitsas&lt;/span&gt;&lt;/span&gt;&amp;nbsp; </content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/1848673483506041365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2013/03/android-location-based-services_5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/1848673483506041365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/1848673483506041365'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2013/03/android-location-based-services_5.html' title='Android Location Based Services Application – GPS location'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIF6upB4EvnzcirptCdt_55AXhF27UjGk_cymwRWVZmh7T6ttEMxLWcXguSbEhsFk25m3NOBkMAxdeHPiJZkP1oN197NMNjlI-ArWT3oVfoYVkSudWt-wmZIVXmfQ1NUIxSdZpEOS0nmU/s72-c/01-new-android-project.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-3455931142853085255</id><published>2013-01-01T20:30:00.000+08:00</published><updated>2013-03-05T20:31:14.980+08:00</updated><title type='text'>Android Hello World Example – How to develop android apps</title><content type='html'>In this tutorial, we will go through the&amp;nbsp;necessary&amp;nbsp;steps you need to 
take in order to develop your first Android application in Eclipse IDE 
using the ADT plugin and run it with an Android Virtual Device.&lt;br /&gt;
The
 ADT plugin provides easy Android Project creation and management with 
rich editor features and documentation as well as Android Virtual Device
 (AVD) management.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt; The steps :&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Download and Install the Android SDK&lt;/li&gt;
&lt;li&gt;Download and Install the ADT Eclipse plugin&lt;/li&gt;
&lt;li&gt;Create an Android Virtual Device (AVD)&lt;/li&gt;
&lt;li&gt;Create an Android Project with Eclipse&lt;/li&gt;
&lt;li&gt;Run the Application in the Android Virtual Device&lt;/li&gt;
&lt;/ol&gt;
We will use the following tools in a Windows 64-bit platform:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;JDK 1.7&lt;/li&gt;
&lt;li&gt;Eclipse 4.2 Juno&lt;/li&gt;
&lt;li&gt;Android SKD 4.2&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
1. Download and Install the Android SDK&lt;/h2&gt;
Go to the &lt;a href=&quot;http://developer.android.com/sdk/index.html&quot;&gt;Android SDK page&lt;/a&gt;,
 and download the appropriate version for your&amp;nbsp;platform. You can choose 
to download &amp;nbsp;the ADT (Android Development Tools) bundle, in which you 
will find both Eclipse and the Android SDK. But if you already have an 
Eclipse instance in your pc, click “USE AN EXISTING IDE” 
and&amp;nbsp;Download&amp;nbsp;the SDK Tools for your platform. This will download an 
installer to your system.&lt;br /&gt;
&lt;a href=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/android-sdk-install-location.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-4812&quot; height=&quot;399&quot; src=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/android-sdk-install-location.jpg&quot; title=&quot;android-sdk-install-location&quot; width=&quot;513&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Run the installer and choose the SDK Path in which the SDK will be installed.&lt;br /&gt;
&lt;a href=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/launch-sdk-manager.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-4813&quot; height=&quot;399&quot; src=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/launch-sdk-manager.jpg&quot; title=&quot;launch-sdk-manager&quot; width=&quot;513&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
When the installation is finished, launch the Android SDK Manager.&lt;br /&gt;
The
 Android SDK Manager will &amp;nbsp;install the Android Version you want to use 
and other tools and APIs as well. We are going to use Android 4.2.&lt;br /&gt;
&lt;a href=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/android-sdk-manager.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-4794&quot; height=&quot;543&quot; src=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/android-sdk-manager.jpg&quot; title=&quot;android-sdk-manager&quot; width=&quot;735&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;
2. Download and Install the ADT Eclipse plugin&lt;/h2&gt;
In this step we are going to&amp;nbsp;integrate&amp;nbsp;Android SDK with Eclipse IDE, using the ADT (Android Development Tools) plugin.&lt;br /&gt;
Open Eclipse and select Help -&amp;gt; Install New Software…, and in the first textfield put the following URL and click Add:&lt;br /&gt;
&lt;div class=&quot;syntaxhighlighter  &quot; id=&quot;highlighter_201197&quot;&gt;
&lt;div class=&quot;lines&quot;&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;plain&quot;&gt;&lt;a href=&quot;https://dl-ssl.google.com/android/eclipse/&quot;&gt;https://dl-ssl.google.com/android/eclipse/&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;a href=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/install-adt-eclipse-plugin.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-4795&quot; height=&quot;722&quot; src=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/install-adt-eclipse-plugin.jpg&quot; title=&quot;install-adt-eclipse-plugin&quot; width=&quot;667&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
You
 may click Select All and Next to install the ADT. If you face any 
problems with the installation of the ADT plugin or if it is taking way 
to long to download and install, you can try &lt;a href=&quot;http://developer.android.com/tools/sdk/eclipse-adt.html&quot;&gt;installing the ADT manually&lt;/a&gt;&amp;nbsp;and, of course you can follow the &lt;a href=&quot;http://developer.android.com/sdk/eclipse-adt.html#troubleshooting&quot;&gt;Troubleshooting&amp;nbsp;Instructions&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;
3. Create an Android Virtual Device (AVD)&lt;/h2&gt;
When
 you are done installing the ADT&amp;nbsp;plugin&amp;nbsp;you will be asked to restart the
 IDE. After restarting Eclipse, notice the two Android Development Tools
 Icons on the Eclipse Toolbar.&lt;br /&gt;
&lt;a href=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/android-tools-icons1.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-4797&quot; height=&quot;102&quot; src=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/android-tools-icons1.jpg&quot; title=&quot;android-tools-icons&quot; width=&quot;745&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Using
 &amp;nbsp;these Icons you can instantly&amp;nbsp;open the Android SDK Manager and setup 
&amp;nbsp;an Android Virtual Device (AVD)&amp;nbsp;respectively. Click the right icon and 
in the pop up window click New to add a new Virtual Device.&lt;br /&gt;
&lt;a href=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/add-new-virtual-device.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-4798&quot; height=&quot;501&quot; src=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/add-new-virtual-device.jpg&quot; title=&quot;add-new-virtual-device&quot; width=&quot;700&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/virtual-device-edit.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-4799&quot; height=&quot;672&quot; src=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/virtual-device-edit.jpg&quot; title=&quot;virtual-device-edit&quot; width=&quot;399&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;
4. Create an Android Project with Eclipse&lt;/h2&gt;
Now
 it’s time to create a new Android project. Select File -&amp;gt; New -&amp;gt; 
Project. Then select Android Application Project and click Next.&lt;br /&gt;
&lt;a href=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/new-anroid-project.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-4800&quot; height=&quot;500&quot; src=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/new-anroid-project.jpg&quot; title=&quot;new-anroid-project&quot; width=&quot;525&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
After&amp;nbsp;specifying&amp;nbsp;the Applications details (e.g. Application name) , go to the Project Explorer.&lt;br /&gt;
&lt;a href=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/eclipse-project-explorer.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-4801&quot; height=&quot;381&quot; src=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/eclipse-project-explorer.jpg&quot; title=&quot;eclipse-project-explorer&quot; width=&quot;361&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Right
 click on the project name (in this case “HelloWorld”…) and select 
New-&amp;gt;Android Activity. If&amp;nbsp;Android Activity doesn’t show up, 
select&amp;nbsp;New-&amp;gt;Other-&amp;gt;Android-&amp;gt;Android Activity.&lt;br /&gt;
&lt;a href=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/add-new-activity.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-4802&quot; height=&quot;500&quot; src=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/add-new-activity.jpg&quot; title=&quot;add-new-activity&quot; width=&quot;525&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
And
 click Next. You will be asked to specify some details about this 
Activity (e.g. name). Then, navigate to the java file which contains the
 source code of the new activity.&lt;br /&gt;
&lt;a href=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/new-activity-source-file.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-4803&quot; height=&quot;381&quot; src=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/new-activity-source-file.jpg&quot; title=&quot;new-activity-source-file&quot; width=&quot;361&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
And paste the following code in the &lt;code&gt;OnCreate &lt;/code&gt;method:&lt;br /&gt;
&lt;div class=&quot;syntaxhighlighter  &quot; id=&quot;highlighter_123953&quot;&gt;
&lt;div class=&quot;lines&quot;&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;package&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;com.javacodegeeks.android.helloword;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;android.app.Activity;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;android.os.Bundle;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;android.widget.TextView;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;MainActivity &lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;extends&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;Activity {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;color1&quot;&gt;@Override&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;protected&lt;/code&gt; &lt;code class=&quot;keyword&quot;&gt;void&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;onCreate(Bundle savedInstanceState) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;super&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;.onCreate(savedInstanceState);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;TextView text = &lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;new&lt;/code&gt; &lt;code class=&quot;plain&quot;&gt;TextView(&lt;/code&gt;&lt;code class=&quot;keyword&quot;&gt;this&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;text.setText(&lt;/code&gt;&lt;code class=&quot;string&quot;&gt;&quot;Hello World of Android! - Greetings from Java Code Geeks&quot;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;setContentView(text);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;plain&quot;&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt1&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;17&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;line alt2&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;number&quot;&gt;&lt;code&gt;18&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;content&quot;&gt;&lt;code class=&quot;plain&quot;&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;
5. Run the Application in the Android Virtual Device&lt;/h2&gt;
You
 can now Run the project as Android Application. The emulator will be 
launched. This usually takes some time. So, when you are working on a 
Project, just launch the emulator once and leave it open.&lt;br /&gt;
&lt;a href=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/android-helloworld-screen.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-4811&quot; height=&quot;838&quot; src=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/android-helloworld-screen.jpg&quot; title=&quot;android-helloworld-screen&quot; width=&quot;728&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;
Download Eclipse Project&lt;/h2&gt;
&lt;h2&gt;
&amp;nbsp;&lt;/h2&gt;
Download the Eclipse Project of this tutorial&amp;nbsp;&lt;a href=&quot;http://cdn.javacodegeeks.com/wp-content/uploads/2012/12/HelloWorld.zip&quot;&gt;HelloWorld.zip&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;vcard author&quot;&gt;&lt;span class=&quot;fn&quot;&gt;source from: Nikos Maravitsas&lt;/span&gt;&lt;/span&gt; </content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/3455931142853085255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2013/01/android-hello-world-example-how-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/3455931142853085255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/3455931142853085255'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2013/01/android-hello-world-example-how-to.html' title='Android Hello World Example – How to develop android apps'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-5221948766424467159</id><published>2012-06-07T18:02:00.005+08:00</published><updated>2012-06-07T18:02:51.888+08:00</updated><title type='text'>How to install Windows XP on DV9500, DV6500 and DV2500 above model notebooks without using USB floppy drive.</title><content type='html'>&lt;strong&gt;How &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD3&quot;&gt;to install&lt;/span&gt; &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD7&quot;&gt;Windows&lt;/span&gt; XP on DV9500, DV6500,DV2500&amp;nbsp; and V3000 above model notebooks &lt;span style=&quot;color: #cc0000;&quot;&gt;without using USB floppy drive&lt;/span&gt;.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;If
 your notebook shipped with the Intel Processor and it is HP DV9500, 
DV6500 and DV2500 and above model notebooks. When you try to install XP 
on it using the XP operating system discs, mostly you will see the error
 that “Hard drive not found”. This issue occurs because the Operating 
system disc which you are using does not has the SATA &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD2&quot;&gt;drivers&lt;/span&gt; and all New HP notebooks shipped with the SATA hard drive. SATA is a &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD5&quot;&gt;technology&lt;/span&gt; which will be not supported by XP.&lt;br /&gt;&lt;br /&gt;To resolve this issue and to install XP on your notebook, we need to install SATA drivers. This tutorial covers the process of installing Windows XP on an HP DV9500, DV6500 and DV2500 with Intel processor series Laptop. Currently, most HP Laptops are being shipped with Windows Vista, and there is minimal &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD1&quot;&gt;driver&lt;/span&gt; support on the HP website site for those who want to downgrade to Windows XP.&lt;br /&gt;&lt;br /&gt;Generally we need USB floppy drive to install SATA driver on the above listed series notebooks but we can install SATA drivers with out using USB floppy drive.&lt;br /&gt;&lt;br /&gt;To do this we are using nLite which will create a Windows XP installation disk with integrated SATA drivers. To do this we need a Optical drive which can burn discs. I would also recommend having a &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD4&quot;&gt;USB flash drive&lt;/span&gt; handy to hold the additional drivers that will be installed after XP installation.&lt;br /&gt;&lt;br /&gt;Before proceeding to create a XP operating system disc with SATA drivers, I recommend to back up the important data from hard drive and create recovery discs for your notebook from recovery partition.&lt;br /&gt;&lt;br /&gt;HP computers that ship with Microsoft Windows
 Vista do not come with recovery CDs. Instead, they use a space 
(partition) on the hard disk drive to store the recovery information. 
The use of a hidden partition provides a convenient process that 
eliminates the use of recovery discs that may be lost or scratched. 
Recovery discs for Windows Vista can be created by using the Recovery Manager or are available from HP for a minimal cost.&lt;br /&gt;&lt;br /&gt;Here
 is the web link which has instructions to create recovery discs for 
your notebook using recovery manager software. Please follow the 
instruction and create recovery discs.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://h10025.www1.hp.com/ewfrf/wc/genericDocument?lc=en&amp;amp;cc=us&amp;amp;dlc=en&amp;amp;docname=c00809678&quot;&gt;http://h10025.www1.hp.com/ewfrf/wc/genericDocument?lc=en&amp;amp;cc=us&amp;amp;dlc=en&amp;amp;docname=c00809678&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Installation Procedure to f install Windows XP on a HP dv6500, dv9500, dv2500 series Laptop&lt;br /&gt;&lt;br /&gt;First we need to &quot;create a new Windows XP installation disk integrated with SATA drive controller drivers&quot; (Intel SATA AHCI Controller Driver). Otherwise Windows XP will not find the hard disk during the installation procedure.&lt;br /&gt;&lt;br /&gt;1. Download and install the nLite software from following web link.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.nliteos.com/download.html&quot;&gt;http://www.nliteos.com/download.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Download the Intel SATA AHCI Controller Driver
 from following ftp link and run the executable installing to the 
default c:\swsetup\SP37005 path (Note: After running the sp37005 file, 
it will ask you to insert a floppy, ignore the message and click on 
cancel)&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;ftp://ftp.hp.com/pub/softpaq/sp37001-37500/sp37005.exe&quot;&gt;ftp://ftp.hp.com/pub/softpaq/sp37001-37500/sp37005.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. Insert your Windows XP CD into your CD drive&lt;br /&gt;&lt;br /&gt;4. Navigate to Start -&amp;gt; Programs -&amp;gt; nLite and click nLite to launch the program&lt;br /&gt;&lt;br /&gt;5. Once you get to the Locating the Windows installation section, Click the Browse button and navigate to the CD drive where your Windows install CD resides, then click OK and Next&lt;br /&gt;&lt;br /&gt;6. Next, the program will ask you where to save the CD installation files for modification, click OK&lt;br /&gt;7.
 Next, you will need to create a folder to save to and work from. Click 
the Make New Folder button, type in a folder name, and click OK&lt;br /&gt;&lt;br /&gt;8. Next, nLite will attempt to copy all files from the Windows installation disk to the folder you have created. Once it has finished, click Next&lt;br /&gt;&lt;br /&gt;9. Once you arrive at the Task Selection page, select the Drivers and Bootable ISO option and then click Next&lt;br /&gt;&lt;br /&gt;10. Next to select the SATA drivers to integrate. Click Insert, select Single driver and navigate to the c:\swsetup\SP37005\Files and click iastor.inf and click Open&lt;br /&gt;&lt;br /&gt;11. Next, select &quot;ALL&quot; of the driver files listed and then click OK .&lt;br /&gt;12. Next, when prompted to start the process Click OK&lt;br /&gt;13. After the process has finished, click Next till you arrive at the Bootable ISO page&lt;br /&gt;14. I prefer to Create and ISO Image and then use other software to burn the ISO to a CD&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://s543.photobucket.com/albums/gg479/king_2306/?action=view&amp;amp;current=7-fullinit.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Photobucket&quot; border=&quot;0&quot; src=&quot;http://i543.photobucket.com/albums/gg479/king_2306/7-fullinit.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;15. Next, find your newly created ISO and burn your ISO to a CD using your preferred burning software&lt;br /&gt;16. Insert the remastered Windows XP CD into your HP dv6500 series Laptop and proceed to install Windows XP&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/5221948766424467159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2012/06/how-to-install-windows-xp-on-dv9500.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/5221948766424467159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/5221948766424467159'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2012/06/how-to-install-windows-xp-on-dv9500.html' title='How to install Windows XP on DV9500, DV6500 and DV2500 above model notebooks without using USB floppy drive.'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-4765525198564930620</id><published>2012-06-06T10:00:00.000+08:00</published><updated>2012-06-06T10:02:36.607+08:00</updated><title type='text'>Samsung mobile tips, tricks&amp; secrets</title><content type='html'>&lt;table border=&quot;0&quot; cellpadding=&quot;4&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; bgcolor=&quot;#3CBFFF&quot; height=&quot;22&quot;&gt;&lt;span style=&quot;color: white; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;
&lt;b&gt;To check Samsung mobile or cellphones IMEI (International Mobile Equipment Identity) &lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;background-color: white;&quot;&gt;&lt;td align=&quot;center&quot; bgcolor=&quot;#CAEEFF&quot;&gt;&lt;span style=&quot;color: black; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;
 On the main screen type *#06#&lt;br /&gt;&lt;br /&gt;
 Information you get from the IMEI (International Mobile Equipment Identity)&lt;br /&gt;
 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XXXXXX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XXXXXX&amp;nbsp;&amp;nbsp;&amp;nbsp; 
 X&lt;br /&gt;
 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TAC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FAC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SNR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SP&lt;br /&gt;&lt;br /&gt;
 TAC = Type approval code of your samsung Mobile&lt;br /&gt;
 FAC = Final assembly code of your cellphone&lt;br /&gt;
 SNR = Serial number of your samsung Phone&lt;br /&gt;
 SP = Spare
&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;background-color: white;&quot;&gt;&lt;td align=&quot;center&quot; bgcolor=&quot;#3CBFFF&quot; height=&quot;22&quot;&gt;&lt;span style=&quot;color: white; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;
&lt;b&gt;Other secret tricks for samsung mobile or cellphone&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;background-color: white;&quot;&gt;&lt;td bgcolor=&quot;#CAEEFF&quot;&gt;&lt;span style=&quot;color: black; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;
&amp;nbsp;&amp;nbsp;&lt;b&gt;If you have downloaded corrupted or incompatible Java midlets or other media,&lt;/b&gt;&lt;br /&gt;

&amp;nbsp;&amp;nbsp;which are causing problems with the phone, try this&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*2767*JAVA# Java Reset and (Deletes all Java Midlets)&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*2767*MEDIA# Reset Media (Deletes All Sounds and Pics) &lt;br /&gt;

&amp;nbsp;&amp;nbsp;*2767*WAP# Wap Reset&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*2767*CUST# Reset Custom EEPR0M&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*2767*FULL# Reset Full EEPR0M (Caution)&lt;br /&gt;

&amp;nbsp;&amp;nbsp;For example : *2767*JAVA# would be keyed in as *2767*5282#&lt;br /&gt;

&amp;nbsp;&amp;nbsp;Note : Not all codes will work with SGH-C100.&lt;br /&gt;&lt;br /&gt;


&amp;nbsp;&amp;nbsp;&lt;b&gt;The master reset code is:&lt;/b&gt;&lt;br /&gt;

&amp;nbsp;&amp;nbsp;#*7728#&lt;br /&gt;

&amp;nbsp;&amp;nbsp;This will not delete anything from your&lt;br /&gt;

&amp;nbsp;&amp;nbsp;mobile phone, but set each and eveything to its&lt;br /&gt;

&amp;nbsp;&amp;nbsp;default/standard setting as it was on the time of purchase.&lt;br /&gt;&lt;br /&gt;


&amp;nbsp;&amp;nbsp;&lt;b&gt;To unlock your phone put a sim from another company,&lt;/b&gt;&lt;br /&gt;

&amp;nbsp;&amp;nbsp;now type *#9998*3323# it will reset your phone. Push exit and then push 7, &lt;br /&gt;

&amp;nbsp;&amp;nbsp;it will reset again. Put your other  sim in and it will say sim lock,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;type in 00000000 then it should be unlocked. Type in *0141# then&lt;br /&gt;

&amp;nbsp;&amp;nbsp;the green call batton and it&#39;s unlocked to all networks.&lt;br /&gt;

&amp;nbsp;&amp;nbsp;This code may not work on the older phones and some of the newer phones.&lt;br /&gt;

&amp;nbsp;&amp;nbsp;If it doesn&#39;t work you will have to reset your phone without a sim in it&lt;br /&gt;

&amp;nbsp;&amp;nbsp;by typing *#2767*2878# or *#9998*3855# (not tested)&lt;br /&gt;&lt;br /&gt;



&amp;nbsp;&amp;nbsp;&lt;b&gt;Other Samsung Codes&lt;/b&gt;&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#9998*4357# Help Menu&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#9998*5282# Java menu (GRPS/CSD settings for JAVA server)&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*#9999#0# Monitor Mode&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#9999# or *#9998*9999# Software Version&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#8888# or *#9998*8888# Hardware Version&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#9998*746# or *#9998*0746# or *#0746# Sim Infos&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#9998*523# or *#9998*0523# or *#0523# Display Contrast&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#9998*842# or *#9998*0842# or *#0842# Vibration On (until you push OK)&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#9998*289# or *#9998*0289# or *#0289# Buzzer On (until you push OK)&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#9998*288# or *#9998*0288# or *#0288# Battery &amp;amp; Field Infos&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#9998*377# or *#9998*0377# Error log&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#9998*778# or *#9998*0778# or *#0778# Sim Service table&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#9998*782# show date and alarm clock&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#8999*638# show network information&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#9998*5646# change operator logo at startup&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#9998*76# production number&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#9998*968# view melody for alarm&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#9998*585# Non-Volatile Memory (NVM)&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#3243948# Digital Audio Interference Off&lt;br /&gt;

&amp;nbsp;&amp;nbsp;*#32436837# Digital Audio Interference On&lt;br /&gt;

&lt;/span&gt;&lt;span style=&quot;color: #006600; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;&lt;b&gt;&lt;/b&gt;
&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;ins style=&quot;border: none; display: inline-table; height: 60px; margin: 0; padding: 0; position: relative; visibility: visible; width: 468px;&quot;&gt;&lt;/ins&gt;&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; bgcolor=&quot;#3CBFFF&quot; height=&quot;22&quot;&gt;&lt;span style=&quot;color: white; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;
&lt;b&gt;SECRET PRANK&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td bgcolor=&quot;#CAEEFF&quot;&gt;&lt;span style=&quot;color: black; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;
Change closed caller group (settings &amp;gt;security settings&amp;gt;user 
groups) to 00000 and your phone will sound the message tone when you are
 near a radar speed trap.&lt;br /&gt;
Setting it to 500 will cause your phone 2 set off security alarms at shop exits.&lt;br /&gt;
Try this secret trick if you can handle the unexpected.&lt;br /&gt;
Note: This secret trick wont work with all phones Models.
&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; bgcolor=&quot;#3CBFFF&quot; height=&quot;22&quot;&gt;&lt;span style=&quot;color: white; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;
&lt;b&gt;THE DETECTIVE TRICK (Mobile Spying)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style=&quot;color: black; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;
&amp;nbsp;&amp;nbsp;Now you can spy on anyone using your cellphone. Just do the following.&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;&lt;span style=&quot;color: black; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;
&lt;li&gt;Activate the &quot;Automatic Answer&quot; in the headset profile of your cellphone 
 and set the ringing volume to &quot;Mute&quot;&lt;/li&gt;
&lt;li&gt;Short-circuit the left middle and right pins on the bottom of the mobile 
 phone with all connections touching each other this will activate profile 
 &quot;Headset&quot;.&lt;br /&gt;If you cant do this just keep your earphone connected to 
 mobile.&lt;/li&gt;
&lt;li&gt;Now place it under a table in a room and call it. Now you can use your 
 phone for checking out what people are talking about in a room. Just call on 
 your phone.&lt;/li&gt;
&lt;li&gt;The phone receives the call without ringing and you can listen to what 
 people are saying.&lt;/li&gt;
&lt;/span&gt;&lt;/ol&gt;
&lt;span style=&quot;color: black; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;
&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/4765525198564930620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2012/06/samsung-mobile-tips-tricks-secrets.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/4765525198564930620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/4765525198564930620'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2012/06/samsung-mobile-tips-tricks-secrets.html' title='Samsung mobile tips, tricks&amp; secrets'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-5886056137267316198</id><published>2012-06-05T18:36:00.003+08:00</published><updated>2012-06-05T18:36:59.140+08:00</updated><title type='text'>Upgrade Samsung Galaxy S2 to official Android 4.0.3 XXLPQ firmware manually</title><content type='html'>&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-65464&quot; height=&quot;350&quot; src=&quot;http://1.androidauthority.com/wp-content/uploads/2012/03/galaxy-s2-i9100-upgrade-official-xxlpq-03162012.jpg&quot; title=&quot;galaxy-s2-i9100-upgrade-official-xxlpq-03162012&quot; width=&quot;260&quot; /&gt;&lt;/div&gt;
An
 official Ice Cream Sandwich update from Samsung has finally landed for 
Galaxy S2 users in the Poland through Samsung KIES. Some features appear
 to be missing from earlier leaks, such as no 3D animation effect in 
drawer and while swiping home screens.&lt;br /&gt;
Apart from that, firmware 
XXLPQ brings some improvements as well, with no touch lags and packed 
with TouchWiz 4 UI. If for some reason Ice Cream Sandwich has not yet 
arrived on your device and you don’t want to miss out on the fun, we’ll 
be showing you how you, too, can enjoy XXLPQ, the official Ice Cream 
Sandwich release, on your Galaxy S2.&lt;br /&gt;
We’ll be installing this 
firmware through Odin3. If you’re an Android novice, you have no reason 
to fear. The upgrade process is easy as long as you follow our guide 
below.&lt;br /&gt;
This update is only for the Galaxy S2, with the model 
number GT-I9100, and is not compatible with other devices. You may check
 your device’s model number through “Settings &amp;gt; About Phone.” If your
 phone does not match the model number, we highly discourage attempting 
to install this firmware update as it may lead to bricking.&lt;br /&gt;
&lt;h2&gt;
Caution&lt;/h2&gt;
Though
 this leaked firmware is originally intended for Poland, some users of 
the Samsung Galaxy S2 GT-I9100 have reported that this firmware work on 
Polish, Hungarian, Swedish, German, Pakistani, Korean, and European 
handsets, too.&lt;br /&gt;
But, still, you are advised to proceed with the 
update at your own risk.&amp;nbsp; Any damage you cause to your phone or to 
yourself will be your sole responsibility.&lt;br /&gt;
&lt;h2&gt;
Requirements&lt;/h2&gt;
Take note of the following and comply with the requirements before updating:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Flashing this firmware update will wipe your data. Make sure to create a backup of any important data on your Galaxy S2.&lt;/li&gt;
&lt;li&gt;Make
 sure to charge your Galaxy S2′s battery (at least 70%, full charge 
recommended). This prevents your Galaxy S2 from shutting off in the 
middle of the update process.&lt;/li&gt;
&lt;li&gt;If you’ve got Samsung KIES installed on your computer, uninstall it as it may interrupt the update process.&lt;/li&gt;
&lt;li&gt;A Windows PC&lt;/li&gt;
&lt;li&gt;Download &lt;a href=&quot;http://www.mediafire.com/?80hdr07ij033hom&quot; target=&quot;_blank&quot;&gt;Odin3 v1.83&lt;/a&gt; to your computer.&lt;/li&gt;
&lt;li&gt;Make sure that you’ve got the device drivers for your phone installed on your Windows computer.&amp;nbsp; &lt;a href=&quot;http://drivers.softpedia.com/get/MOBILES/Samsung/Samsung-Galaxy-S-USB-Driver-for-Windows-x86.shtml&quot; target=&quot;_blank&quot;&gt;32 bit (x86) Windows&lt;/a&gt; | &lt;a href=&quot;http://drivers.softpedia.com/get/MOBILES/Samsung/Samsung-Galaxy-S-USB-Driver-for-Windows-x64.shtml&quot; target=&quot;_blank&quot;&gt;63 bit (x64) Windows&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;XXLPQ firmware — Download from &lt;a href=&quot;http://www.filefactory.com/file/c4c70a8/n/I9100XXLPQ_I9100OXALPQ_XEO.rar&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt; or &lt;a href=&quot;http://hotfile.com/dl/149514867/aea2f22/I9100XXLPQ_I9100OXALPQ_XEO.zip.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Update Instructions&lt;/h2&gt;
These are the steps for applying the firmware update manually:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Download the XXLPQ firmware to your computer.&lt;/li&gt;
&lt;li&gt;Extract the “I9100XXLPQ_I9100OXALPQ_I9100XXLPQ_HOME.tar.md5″ file using 7-Zip or WinRAR.&lt;/li&gt;
&lt;li&gt;Turn off your Galaxy S2.&amp;nbsp; Wait for the phone to vibrate, signalling that it is completely powered down.&lt;/li&gt;
&lt;li&gt;Reboot
 your phone into Download Mode. You can do this by pressing and holding 
down the Volume Down, Home, and Power buttons until you get the Warning!
 message on the screen.&amp;nbsp; Press the Volume Up button to enter download 
mode.&lt;/li&gt;
&lt;li&gt;On your computer, run Odin3.&lt;/li&gt;
&lt;li&gt;Connect your Galaxy 
S2 to your computer via USB cable.&amp;nbsp; The message box in Odin3 will say 
“Added!” if the program successfully detected your phone.&lt;/li&gt;
&lt;li&gt;In 
Odin3, click the PDA tab, navigate to where you extracted the contents 
of the XXLPQ firmware and select the 
“I9100XXLPQ_I9100OXALPQ_I9100XXLPQ_HOME.tar.md5″ file.&lt;/li&gt;
&lt;li&gt;Check both the Auto Reboot and F. Reset Time checkboxes in the Option section.&amp;nbsp; Leave everything else as is.&lt;/li&gt;
&lt;li&gt;Hit START to begin installing the XXLPQ firmware.&lt;/li&gt;
&lt;li&gt;Once
 the installation has completed, you should see the upper-left square in
 the Odin window light up in green with a “PASS!” message.&lt;/li&gt;
&lt;li&gt;If Odin gets stuck in the middle of the installation process, you’ll need to do the following:&lt;ol type=&quot;i&quot;&gt;
&lt;li&gt;Disconnect the Galaxy S2 from the computer.&lt;/li&gt;
&lt;li&gt;Close Odin.&lt;/li&gt;
&lt;li&gt;Remove the Galaxy S2′s battery.&lt;/li&gt;
&lt;li&gt;Re-insert it.&lt;/li&gt;
&lt;li&gt;Boot phone back into Download mode.&lt;/li&gt;
&lt;li&gt;Resume the procedure from step 6.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Your phone should now reboot.&lt;/li&gt;
&lt;li&gt;After
 the firmware has installed and the phone reboots, some users have 
reported getting stuck at the S logo. If this happens, do the following:&lt;ol type=&quot;i&quot;&gt;
&lt;li&gt;Boot
 to recovery mode. Power off the phone. Wait for a few seconds and then 
press the Home, Volume Up, and Power buttons together.&lt;/li&gt;
&lt;li&gt;Select “Wipe Data/Factory Reset.”&lt;/li&gt;
&lt;li&gt;Select “Wipe Cache.”&lt;/li&gt;
&lt;li&gt;Select “Reboot System Now.”&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
Congratulations! Your Samsung Galaxy S2 is now running on Ice Cream Sandwich with XXLPQ firmware.</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/5886056137267316198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2012/06/upgrade-samsung-galaxy-s2-to-official.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/5886056137267316198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/5886056137267316198'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2012/06/upgrade-samsung-galaxy-s2-to-official.html' title='Upgrade Samsung Galaxy S2 to official Android 4.0.3 XXLPQ firmware manually'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-7470950163534866800</id><published>2012-06-05T10:15:00.001+08:00</published><updated>2012-06-05T10:15:22.516+08:00</updated><title type='text'>Hacking Software - oclHashcat-plus v0.08</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 class=&quot;post-title entry-title&quot;&gt;

&lt;a href=&quot;http://www.rafayhackingarticles.net/2012/05/hacking-software-oclhashcat-plus-v008.html&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-f6EEXVKFcxU/T66FYlmyXQI/AAAAAAAAAMc/cnGY_3QSFYs/s1600/images.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;296&quot; src=&quot;http://1.bp.blogspot.com/-f6EEXVKFcxU/T66FYlmyXQI/AAAAAAAAAMc/cnGY_3QSFYs/s400/images.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;What is oclHashcat-plus v0.08 ?
&lt;/b&gt;

oclHashcat-plus v0.08 worlds first &#39;&#39;GPU&quot; based rule engine.It is also 
the worlds fastest phpass, mscash2,md5crypt and WPA/WPA2 cracker.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Description -&amp;nbsp;&lt;/b&gt;oclHashcat-plus v0.08 ius an advanced password 
hacking software which is highly efficient and works faster than any 
other software of it&#39;s genre.There are a number of algorithms 
implemented in it and it has many features which make it the best 
software available for password cracker.&lt;br /&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=4267682273897969213&quot; name=&quot;more&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;Some of it&#39;s Features&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;

1.&lt;/b&gt;Multi-GPU (up to 16 gpus)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.&lt;/b&gt;Multi-Hash (up to 24 million hashes)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3.&lt;/b&gt;Multi-OS (Linux &amp;amp; Windows native binaries)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4.&lt;/b&gt;Multi-Platform (OpenCL &amp;amp; CUDA support)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5.&lt;/b&gt;Supports reading words from file.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;6.&lt;/b&gt;Supports reading words from stdin&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;7.&lt;/b&gt;Integrated thermal watchdog
And many more..&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Algorithms implemented -&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
1.Joomla.&lt;br /&gt;
2.MD5.&lt;br /&gt;
3.Oracle 11g.&lt;br /&gt;
4.MSSQL - 2000.&lt;br /&gt;
5.MSSQl -2005.&lt;br /&gt;
6.MySQl.&lt;br /&gt;
7.Phpass.&lt;br /&gt;
8.Oracle 7-10g.&lt;br /&gt;
9.SHA256.&lt;br /&gt;
10.NTLM.&lt;br /&gt;
11.MD4.&lt;br /&gt;
12.OSX10.7.&lt;br /&gt;
13.CISCO-PIX MD5.&lt;br /&gt;
14.Double MD5.&lt;br /&gt;
15.SSHA.&lt;br /&gt;
16.SHA-1(Base64), nsldap, Netscape LDAP SHA.&lt;br /&gt;
17.SSHA-1(Base64), nsldaps, Netscape LDAP.&lt;br /&gt;
18.DCC,mscash.&lt;br /&gt;
19.OSX v10.4, v10.5, v10.6.&lt;br /&gt;
20.SHA1.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Modes of Attack-&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
1.Straight &lt;br /&gt;
2.Combination&lt;br /&gt;
3.Brute-force&lt;br /&gt;
4.Permutation&lt;br /&gt;
5.Hybrid dict + mask&lt;br /&gt;
6.Hybrid mask + dict&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Cracking a WPA handshake with OclHashcat-Plus(Video)&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;h3 class=&quot;post-title entry-title&quot;&gt;

&lt;br /&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/uGFjEGyjUcU?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;About The Author&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This article is written by Shikhil Sharma, He blogs at &lt;b&gt;www.hacking-tweaks.blogspot.com/.&lt;/b&gt;&lt;/h3&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/7470950163534866800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2012/06/hacking-software-oclhashcat-plus-v008.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/7470950163534866800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/7470950163534866800'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2012/06/hacking-software-oclhashcat-plus-v008.html' title='Hacking Software - oclHashcat-plus v0.08'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-f6EEXVKFcxU/T66FYlmyXQI/AAAAAAAAAMc/cnGY_3QSFYs/s72-c/images.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-300857607669927501</id><published>2012-03-03T22:43:00.000+08:00</published><updated>2012-03-03T22:43:36.618+08:00</updated><title type='text'>Why is my Task Manager disabled, and how do I fix it?</title><content type='html'>The situation&#39;s pretty simple. If you right click on the clock in the Windows taskbar, the &lt;strong&gt;Task Manager&lt;/strong&gt; item is grayed out:&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;Greyed out Task Manager Item&quot; src=&quot;http://img.askleomedia.com/taskmanagergrey.png&quot; style=&quot;border: 1px solid black;&quot; title=&quot;Greyed out Task Manager Item&quot; /&gt;&lt;/div&gt;Or, if you try to run taskmgr.exe manually, you get this message:&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;Task Manager Disabled message&quot; src=&quot;http://img.askleomedia.com/taskmanagerpop.png&quot; title=&quot;Task Manager Disabled message&quot; /&gt;&lt;/div&gt;So, how did this happen?&lt;br /&gt;
As we&#39;ll see in a moment, there are settings you can access as an administrator that would allow you to disable and enable Task Manager in this way.&lt;br /&gt;
You didn&#39;t do that, you say?&lt;br /&gt;
Then a virus probably did.&lt;br /&gt;
Disabling Task Manager is one way viruses try to make it harder for you to deal with their infections. Before proceeding any further, you should run a complete and up-to-date anti-virus scan of your machine. It&#39;s possible, perhaps even likely, that you&#39;ve been infected.&lt;br /&gt;
Once you come back virus-free, you can proceed with the fix.&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;•&lt;/div&gt;If you have Windows XP Pro, there&#39;s a nifty user interface to directly edit the setting you want to repair. Click &lt;strong&gt;Start&lt;/strong&gt;, then click &lt;strong&gt;Run&lt;/strong&gt; and type in &lt;strong&gt;gpedit.msc&lt;/strong&gt;:&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;Start, Run, gpedit.msc&quot; src=&quot;http://img.askleomedia.com/rungpeditmsc.png&quot; title=&quot;Start, Run, gpedit.msc&quot; /&gt;&lt;/div&gt;And press &lt;strong&gt;OK&lt;/strong&gt;. This runs the Group Policy Editor.&lt;br /&gt;
Once in the Group Policy Editor, expand in turn:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; User Configuration&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt; Administrative Templates&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt; System&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt; Ctrl+Alt+Del Options&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;You should see something much like this:&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;Group Policy Editor, Ctrl+Alt+Del Options&quot; src=&quot;http://img.askleomedia.com/gpeditcadoptions.png&quot; title=&quot;Group Policy Editor, Ctrl+Alt+Del Options&quot; /&gt;&lt;/div&gt;Double click on &lt;strong&gt;Remove Task Manager&lt;/strong&gt; to change its setting:&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;Remove Task Manager setting&quot; src=&quot;http://img.askleomedia.com/gpeditremovetaskmanager.png&quot; title=&quot;Remove Task Manager setting&quot; /&gt;&lt;/div&gt;It should be enough to click on &lt;strong&gt;Not Configured&lt;/strong&gt; and then &lt;strong&gt;OK&lt;/strong&gt; and Task Manager is available once again.&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;•&lt;/div&gt;If you don&#39;t have Windows XP Pro, then you&#39;ll need to edit the registry manually.&lt;br /&gt;
Click &lt;strong&gt;Start&lt;/strong&gt;, then click &lt;strong&gt;Run&lt;/strong&gt;, type in &lt;strong&gt;regedit&lt;/strong&gt;, and click on &lt;strong&gt;OK&lt;/strong&gt;.&lt;br /&gt;
Expand these registry keys in turn:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; HKEY_CURRENT_USER&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt; Software&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt; Microsoft&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt; Windows&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt; CurrentVersion&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt; Policies&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt; System&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;You should see something similar to this:&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;Disable Task Manager Registry Setting&quot; src=&quot;http://img.askleomedia.com/regdisabletaskmanager.png&quot; title=&quot;Disable Task Manager Registry Setting&quot; /&gt;&lt;/div&gt;Right Click on the &lt;strong&gt;DisableTaskMgr&lt;/strong&gt; item:&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;Context Menu on DisableTaskMgr registry item&quot; src=&quot;http://img.askleomedia.com/regdeletedisabletaaskmanager.png&quot; style=&quot;border: 1px solid black;&quot; title=&quot;Context Menu on DisableTaskMgr registry item&quot; /&gt;&lt;/div&gt;Click on &lt;strong&gt;Delete&lt;/strong&gt;, confirm that you want to delete, and Task Manager should be available once again.</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/300857607669927501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2012/03/why-is-my-task-manager-disabled-and-how.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/300857607669927501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/300857607669927501'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2012/03/why-is-my-task-manager-disabled-and-how.html' title='Why is my Task Manager disabled, and how do I fix it?'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-5889465444418237037</id><published>2011-12-09T16:17:00.000+08:00</published><updated>2011-12-09T16:17:10.389+08:00</updated><title type='text'>28 Ways to Make Money with Your Website</title><content type='html'>There are several lists with “ways to make money with a website” on  the Internet, but none of them seem to be complete. That is why I  decided to create this one. If you know a method that is not listed  below, just let us know and we’ll update it.&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;Notice that ways to make money with a website are different from ways to make &lt;em&gt;more&lt;/em&gt;  money from it. Methods to increase your traffic or click-through rate  will help you make more money, but they do not represent a method of  making money per se. &lt;br /&gt;
For example, one could suggest that blending AdSense ads with the  content is a way to make money from a website. In reality it’s not; it’s  just a way to make more money by improving your ad click-through rate.  The real monetization method behind it is a PPC ad network.&lt;br /&gt;
The list is divided into direct and indirect methods, and examples and links are provided for each point. Enjoy!&lt;br /&gt;
&lt;h4&gt;Direct Methods&lt;/h4&gt;1. &lt;strong&gt;PPC Advertising Networks &lt;/strong&gt;&lt;br /&gt;
Google AdSense is the most popular option under this category, but  there are also others. Basically you need to sign up with the network  and paste some code snippets on your website. The network will then  serve contextual ads (either text or images) relevant to your website,  and you will earn a certain amount of money for every click.&lt;br /&gt;
The profitability of PPC advertising depends on the general traffic  levels of the website and, most importantly, on the click-through rate  (CTR) and cost per click (CPC). The CTR depends on the design of the  website. Ads placed abode the fold or blended with content, for  instance, tend to get higher CTRs. The CPC, on the other hand, depends  on the nice of the website. Mortgages, financial products and college  education are examples of profitable niches (clicks worth a couple of  dollars are not rare), while tech-related topics tend to receive a  smaller CPC (sometimes as low as a couple of cents per click). &lt;br /&gt;
The source of the traffic can also affect the overall CTR rate.  Organic traffic (the one that comes from search engines) tends to  perform well because these visitors were already looking for something,  and they tend to click on ads more often. Social media traffic, on the  other hand, presents terribly low CTRs because these visitors are  tech-savvy and they just ignore ads.&lt;br /&gt;
List of popular CPC advertising networks:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.google.com/adsense&quot; rel=&quot;nofollow&quot;&gt;Google Adsense&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://publisher.yahoo.com/&quot; rel=&quot;nofollow&quot;&gt;Yahoo! Publisher Network (YPN)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.bidvertiser.com/&quot; rel=&quot;nofollow&quot;&gt;BidVertiser&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://chitika.com/&quot; rel=&quot;nofollow&quot;&gt;Chitika&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.clicksor.com/&quot; rel=&quot;nofollow&quot;&gt;Clicksor&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;2. &lt;strong&gt;CPM Advertising Networks&lt;/strong&gt;&lt;br /&gt;
CPM advertising networks behave pretty much as PPC networks, except  that you get paid according to the number of impressions (i.e., page  views) that the ads displayed on your site will generate. CPM stands for  &lt;em&gt;Cost per Mille&lt;/em&gt;, and it refers to the cost for 1,000 impressions. &lt;br /&gt;
A blog that generates 100,000 page views monthly displaying an  advertising banner with a $1 CPM, therefore, will earn $100 monthly.&lt;br /&gt;
CPM rates vary with the network, the position of the ad and the  format. The better the network, the higher the CPM rate (because they  have access to more advertisers). The closer you put the ad to the top  of the page, the higher the CPM. The bigger the format (in terms of  pixels), the higher the CPM.&lt;br /&gt;
You can get as low as $0,10 and as high as $10 per 1,000 impressions  (more in some special cases). CPM advertising tends to work well on  websites with  a high page views per visitor ratio (e.g., online forums,  magazines and so on).&lt;br /&gt;
List of popular CPM advertising networks:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://casalemedia.com/&quot; rel=&quot;nofollow&quot;&gt;Casale Media&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.burstmedia.com/&quot; rel=&quot;nofollow&quot;&gt;Burst Media&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.valueclickmedia.com/&quot; rel=&quot;nofollow&quot;&gt;Value Click&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.advertising.com/index.php&quot; rel=&quot;nofollow&quot;&gt;Advertising.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tribalfusion.com/SmartPublishers/&quot; rel=&quot;nofollow&quot;&gt;Tribal Fusion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.rightmedia.com/&quot; rel=&quot;nofollow&quot;&gt;Right Media&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;3. &lt;strong&gt;Direct Banner Advertising&lt;/strong&gt;&lt;br /&gt;
Selling your own advertising space is one of the most lucrative  monetization methods. First and foremost because it enables you to cut  out the middleman commissions and to determine your own rates. The most  popular banner formats on the web are the 728×90 leaderboard, the  120×600 skyscraper, the 300×250 rectangle and the 125×125 button.&lt;br /&gt;
The downside of direct banner advertising is that you need to have a  big audience to get qualified advertisers, and you will need to spend  time managing the sales process, the banners and the payments.&lt;br /&gt;
Related links:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.dailyblogtips.com/how-to-find-advertisers-for-your-website-the-ultimate-guide/&quot; rel=&quot;nofollow&quot;&gt;How to Find Advertisers for Your Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.problogger.net/archives/2007/04/11/finding-advertisers-for-your-blog/&quot;&gt;Finding Advertisers for Your Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.doshdosh.com/direct-advertising-sales-beginners-monetization-strategies/&quot;&gt;Direct Advertising Sales for Beginners&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.openads.org/&quot; rel=&quot;nofollow&quot;&gt;Openads Ad Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.oiopublisher.com/&quot; rel=&quot;nofollow&quot;&gt;OIO Publisher Ad Platform&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;4. &lt;strong&gt;Text Link Ads&lt;/strong&gt;&lt;br /&gt;
After Google declared that sites selling text links without the  nofollow tag would be penalized, this monetization method became less  popular. &lt;br /&gt;
Many website owners are still using text links to monetize their sites, though, some using the nofollow tag and some not.&lt;br /&gt;
The advantage of this method is that it is not intrusive. One can  sell text links directly through his website or use specialized networks  like Text-Link-Ads and Text-Link-Brokers to automate the process.&lt;br /&gt;
Text link marketplaces and networks:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://forums.digitalpoint.com/forumdisplay.php?f=58&quot; rel=&quot;nofollow&quot;&gt;DigitalPoint Link Sales Forum&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.text-link-ads.com/&quot; rel=&quot;nofollow&quot;&gt;Text-Link-Ads&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.textlinkbrokers.com/&quot; rel=&quot;nofollow&quot;&gt;Text-Link-Brokers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tnx.net/&quot; rel=&quot;nofollow&quot;&gt;TNX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.linkworth.com/&quot; rel=&quot;nofollow&quot;&gt;LinkWorth&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;5. &lt;strong&gt;Affiliate Marketing&lt;/strong&gt;&lt;br /&gt;
Affiliate marketing is a very popular practice on the Internet. Under  this system you have a merchant that is willing to let other people  (the affiliates) sell directly or indirectly its products and services,  in exchange for a commission. Sometimes this type of advertising is also  called CPA (cost per action) or CPL (cost per lead) based.&lt;br /&gt;
Affiliates can send potential customers to the merchant using several tools, from banners to text links and product reviews.&lt;br /&gt;
In order to find suitable affiliate programs you can turn to individual companies and publishers like &lt;a href=&quot;http://www.dreamhost.com/&quot; rel=&quot;nofollow&quot;&gt;Dreamhost&lt;/a&gt; and &lt;a href=&quot;http://www.seobook.com/&quot;&gt;SEOBook&lt;/a&gt;, or join affiliate marketplaces and networks. &lt;br /&gt;
List of popular affiliate marketplaces and networks:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.cj.com/&quot; rel=&quot;nofollow&quot;&gt;Commission Junction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.clickbank.com/index.html&quot; rel=&quot;nofollow&quot;&gt;ClickBank&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.azoogleads.com/corp/index.php&quot; rel=&quot;nofollow&quot;&gt;Azoogle Ads&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.linkshare.com/index.shtml&quot; rel=&quot;nofollow&quot;&gt;Link Share&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;6. &lt;strong&gt;Monetization Widgets&lt;/strong&gt;&lt;br /&gt;
The latest trend on the web are widgets that let you monetize your  website. Examples include Widgetbucks and SmartLinks. Some of these  services operate under a PPC scheme, others behave like text link ads,  others yet leverage affiliate links.&lt;br /&gt;
Their main differentiator, however, is the fact that they work as web  widgets, making it easier for the user to plug and play the service on  its website.&lt;br /&gt;
List of companies that provide monetization widgets:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.widgetbucks.com/&quot; rel=&quot;nofollow&quot;&gt;WidgetBucks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.scratchback.com/&quot; rel=&quot;nofollow&quot;&gt;ScratchBack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.adaptiveblue.com/smartlinks.html&quot; rel=&quot;nofollow&quot;&gt;SmartLinks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;7. &lt;strong&gt;Sponsored Reviews&lt;/strong&gt;&lt;br /&gt;
PayPerPost pioneered this model, with much controversy on the  beginning (related to the fact that they did not require disclosure on  paid posts). Soon other companies followed, most notably Sponsored  Reviews and ReviewMe, refining the process and expanding the paid  blogging model. &lt;br /&gt;
Joining one of these sponsored reviews marketplaces will give you the  opportunity to write sponsored posts on a wide range of topics. Not all  bloggers are willing to get paid to write about a specific product or  website (because it might compromise the editorial credibility), but the  ones who do are making good money out of it.&lt;br /&gt;
If your blog has a big audience you could also offer sponsored reviews directly, cutting off the commissions of the middleman.&lt;br /&gt;
List of sponsored reviews and paid blogging networks:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://payperpost.com/&quot; rel=&quot;nofollow&quot;&gt;PayPerPost&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.sponsoredreviews.com/&quot; rel=&quot;nofollow&quot;&gt;Sponsored Reviews&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.reviewme.com/&quot; rel=&quot;nofollow&quot;&gt;ReviewMe&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.blogsvertise.com/&quot; rel=&quot;nofollow&quot;&gt;BlogVertise&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.smorty.com/&quot; rel=&quot;nofollow&quot;&gt;Smorty&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;8. &lt;strong&gt;RSS Feed Ads&lt;/strong&gt;&lt;br /&gt;
With the quick adoption of the RSS technology by millions of Internet  users, website owners are starting to find ways to monetize this new  content distribution channel.&lt;br /&gt;
Feedburber already has its own publisher network, and you can sign-up  to start displaying CPM based advertising on your feed footer.  Bidvertiser recently introduced a RSS feed ad option as well, with a PPC  scheme.&lt;br /&gt;
Finally, some blogs are also opting to sell banners or sponsored messages on their feed directly.  &lt;a href=&quot;http://www.johnchow.com/&quot; rel=&quot;nofollow&quot;&gt;John Chow&lt;/a&gt; and &lt;a href=&quot;http://www.marketingpilgrim.com/&quot; rel=&quot;nofollow&quot;&gt;Marketing Pilgrim&lt;/a&gt; are two examples.&lt;br /&gt;
Related links:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.feedburner.com/fb/a/home&quot; rel=&quot;nofollow&quot;&gt;Feedburner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.bidvertiser.com/&quot; rel=&quot;nofollow&quot;&gt;BidVertiser&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.pheedo.com/&quot; rel=&quot;nofollow&quot;&gt;Pheedo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;9. &lt;strong&gt;Sponsors for Single Columns or Events&lt;/strong&gt;&lt;br /&gt;
If you website has specific columns or events (e.g., a weekly  podcast, an interview series, a monthly survey, a special project) you  could find companies to sponsor them individually. &lt;br /&gt;
This method increases the monetization options for website owner,  while giving advertisers the possibility to target a more specific  audience and with a reduced commitment.&lt;br /&gt;
&lt;a href=&quot;http://mashable.com/advertise&quot;&gt;Mashable&lt;/a&gt; illustrates the  case well. They have several advertising options on the site, including  the possibility to sponsor specific columns and articles, including the  “Daily Poll” and the “Web 2.0 Invites.”&lt;br /&gt;
&lt;a href=&quot;http://problogger.net/&quot;&gt;Problogger&lt;/a&gt; also runs group writing projects occasionally, and before proceeding he publicly announce the project asking for sponsors. &lt;br /&gt;
10.&lt;strong&gt;Premium Content&lt;/strong&gt;&lt;br /&gt;
Some websites and blogs give away part of their content for free, and  charge for access to the premium content and exclusive tools.&lt;br /&gt;
&lt;a href=&quot;http://www.seomoz.org/&quot;&gt;SEOMoz&lt;/a&gt; is a good example. They  have a very popular blog that gives advice and information on wide range  of SEO related topics. On top of that visitors can decide to become  premium members. It costs $48 monthly and it grants them access to  guides, tools and other exclusive material.&lt;br /&gt;
11. &lt;strong&gt;Private Forums &lt;/strong&gt;&lt;br /&gt;
While the Internet is populated with free forums, there is also the  possibility to create a private one where members need to pay a single  or recurring fee to join.&lt;br /&gt;
&lt;a href=&quot;http://seoblackhat.com/2006/08/14/seo-blackhat-forum/&quot;&gt;&lt;br /&gt;
SEO Blackhat&lt;/a&gt; charges $100 monthly from its members, and they have  thousands of them. Obviously in order to charge such a price for a forum  membership you need to provide real value for the members (e.g., secret  techniques, tools, and so on).&lt;br /&gt;
&lt;a href=&quot;http://performancing.com/&quot;&gt;Performancing&lt;/a&gt; also launched a private forum recently, focused on the networking aspect. It is called The Hive, and the monthly cost is $10. &lt;br /&gt;
These are just two examples. There are many possibilities to create a  private and profitable forum, you just need to find an appealing angle  that will make it worth for the members.&lt;br /&gt;
List of popular forum software:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.vbulletin.com/&quot; rel=&quot;nofollow&quot;&gt;vBulletin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.simplemachines.org/&quot; rel=&quot;nofollow&quot;&gt;Simple Machines Forum&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.phpbb.com/&quot; rel=&quot;nofollow&quot;&gt;phpBB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.getvanilla.com/&quot; rel=&quot;nofollow&quot;&gt;Vanilla&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;12. &lt;strong&gt;Job Boards&lt;/strong&gt;&lt;br /&gt;
All the popular blogs are trying to leverage job boards to make some extra income. &lt;a href=&quot;http://jobs.guykawasaki.com/a/jbb/find-jobs&quot;&gt;Guy Kawasaki&lt;/a&gt;, &lt;a href=&quot;http://jobs.readwriteweb.com/&quot;&gt;ReadWriteWeb&lt;/a&gt;, &lt;a href=&quot;http://jobs.problogger.net/&quot;&gt;Problogger&lt;/a&gt;… you name it.&lt;br /&gt;
Needless to say that in order to create an active and profitable job  board you need first to have a blog focused on a specific niche, and a  decent amount traffic. &lt;br /&gt;
The advantage of this method is that it is passive. Once you have the  structure in place, the job listings will come naturally, and you can  charge anywhere from $10 up to $100 for each.&lt;br /&gt;
List of popular job board software:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.jobthread.com/&quot; rel=&quot;nofollow&quot;&gt;JobThread&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.webscribble.com/products/webjobs/&quot; rel=&quot;nofollow&quot;&gt;Web Scribe Job Board&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.simplyhired.com/a/publishers/overview&quot; rel=&quot;nofollow&quot;&gt;SimplyHired Job-o-matic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jobbex.com/&quot; rel=&quot;nofollow&quot;&gt;Jobbex&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;13. &lt;strong&gt;Marketplaces&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.sitepoint.com/marketplace/&quot;&gt;Sitepoint&lt;/a&gt; is the  online marketplace by excellence. Some websites and blogs, however, are  trying to replicate that model on a smaller scale. &lt;br /&gt;
Depending on your niche, a market place that allows your visitors to  buy, sell and trade products could work well. Over the time you could  start charging a small fee for new product listings.&lt;br /&gt;
The problem with this method is that there are no standard software  on the web, so you would need to hire a coder to get a marketplace  integrated into your website.&lt;br /&gt;
You can see an example of a marketplaces being used on &lt;a href=&quot;http://marketplace.easywordpress.com/&quot;&gt;EasyWordpress&lt;/a&gt; and on &lt;a href=&quot;http://market.mashable.com/&quot;&gt;Mashable&lt;/a&gt;.&lt;br /&gt;
14. &lt;strong&gt;Paid Surveys and Polls&lt;/strong&gt;&lt;br /&gt;
There are services that will pay you money to run a small survey or poll on your website. The most popular one is called &lt;a href=&quot;http://answers.vizu.com/solutions/power-polls/index.htm&quot; rel=&quot;nofollow&quot;&gt;Vizu Answers&lt;/a&gt;.&lt;br /&gt;
Basically you need to sign up with them, and select the kind of polls  that you want to run your site. Most of these services operate under a  CPM model.&lt;br /&gt;
15. &lt;strong&gt;Selling or Renting Internal Pages&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliondollarwiki.com/Main_Page&quot;&gt;Million Dollar Wiki&lt;/a&gt; made this concept popular, but it was being used on the web for a long time around (check &lt;a href=&quot;http://pagerank10.co.uk/&quot;&gt;Pagerank10.co.uk&lt;/a&gt; for instance).&lt;br /&gt;
These websites sell for a single fee or rent for a recurring fee  internal pages on their domain. Usually they have either high Pagerak or  high traffic, so that people purchasing a page will be able to benefit  in some way.&lt;br /&gt;
Implementing this method on a small blog would be difficult, but the concept is interesting and could be explored further.&lt;br /&gt;
16. &lt;strong&gt;Highlighted Posts from Sponsors&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.techmeme.com/&quot;&gt;Techmeme&lt;/a&gt; probably pioneered  this idea, but somehow it has not spread to other websites. The tech  news aggregator displays editorial posts on the left column, and on the  sidebar they have a section titled “Techmeme Sponsor Posts.” &lt;br /&gt;
On that section posts from the blog of the advertisers get  highlighted, sending qualified traffic their way. Considering that the  monthly cost for one spot is $5000 and that they have around 6 sponsors  at any given time, it must be working well.&lt;br /&gt;
17. &lt;strong&gt;Donations&lt;/strong&gt;&lt;br /&gt;
Placing a “Donate” link or button on a website can be an efficient  way to earn money, especially if your blog is on a niche where readers  learn and gain value from your content.&lt;br /&gt;
Personal development and productivity blogs, for instance, tend to  perform well with donation based systems (one good example being &lt;a href=&quot;http://www.stevepavlina.com/donate.htm&quot;&gt;Steve Pavlina&lt;/a&gt;).&lt;br /&gt;
A small variation of this method appeared sometime ago with the &lt;a href=&quot;http://www.blogclout.com/blog/goodies/buy-me-a-beer-paypal-donation-plugin/&quot;&gt;Buy Me a Beer&lt;/a&gt;  plugin. This WordPress plugin enables you to insert a customized  message at the bottom of each article, asking the readers to chip in for  a beer or coffee. &lt;br /&gt;
18. &lt;strong&gt;In-text Adverting&lt;/strong&gt;&lt;br /&gt;
In-text adverting networks like &lt;a href=&quot;http://www.kontera.com/&quot; rel=&quot;nofollow&quot;&gt;Kontera&lt;/a&gt; and &lt;a href=&quot;http://www.vibrantmedia.com/webpublishers/index.asp&quot; rel=&quot;nofollow&quot;&gt;Vibrant Media&lt;/a&gt;  will place sponsored links inside your text. These links come with a  double underline to differentiate them from normal links, and once the  user rolls the mouse over the link the advertising will pop. Should the  user click on it the site owner will make some money.&lt;br /&gt;
Some people make good money with this method, but others refrain from  using it due to its intrusiveness. It is also interesting to note that  very few mainstream websites have experimented with in-text advertising.&lt;br /&gt;
19. &lt;strong&gt;Pop-ups and Pop-unders&lt;/strong&gt;&lt;br /&gt;
Pop-ups are a common yet annoying form of advertising on the  Internet. If you are just trying to make a much money as possible from  your website, you could experiment with them. &lt;br /&gt;
If you are trying to grow the traffic and generate loyal visitors,  however, you probably should stay away from them. Just consider the  hundreds of pop-up blockers out there: there is a reason why they are so  popular.&lt;br /&gt;
Ad networks that use pop-ups:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.tribalfusion.com/&quot; rel=&quot;nofollow&quot;&gt;Tribal Fusion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://paypopup.com/&quot; rel=&quot;nofollow&quot;&gt;PayPopup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.popupad.net/publishers/index.shtml&quot; rel=&quot;nofollow&quot;&gt;PopupAd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.adversal.com/faq.jsp&quot; rel=&quot;nofollow&quot;&gt;Adversal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;20. &lt;strong&gt;Audio Ads&lt;/strong&gt;&lt;br /&gt;
Also called PPP (Pay Per Play), this advertising method was introduce by &lt;a href=&quot;http://www.netaudioads.com/&quot; rel=&quot;nofollow&quot;&gt;Net Audio Ads&lt;/a&gt;.  the concept is pretty simple: play a small audio advertising (usually 5  seconds) every time a visitor enters into your website. The user should  not be able to stop it, creating a 100% conversion rate based on unique  visitors.&lt;br /&gt;
The company is still rolling tests, but some users are reporting to  get from a $4 to a $6 CPM. Regardless of the pay rate, though, this is a  very intrusive form of advertising, so think twice before using it.&lt;br /&gt;
21. &lt;strong&gt;Selling the Website&lt;/strong&gt;&lt;br /&gt;
Selling your website could be your last resource, but it has the  potential to generate a big sum of money in a short period of time. &lt;br /&gt;
Market places on online forums like &lt;a href=&quot;http://forums.digitalpoint.com/forumdisplay.php?f=52&quot; rel=&quot;nofollow&quot;&gt;DigitalPoint&lt;/a&gt; and &lt;a href=&quot;http://www.sitepoint.com/marketplace/&quot; rel=&quot;nofollow&quot;&gt;Sitepoint&lt;/a&gt;  are always active with website buyers and sellers. Keep in mind that  they most used parameter to determine the value of a website is the  monthly revenue that it generates, multiplied by a certain number (the  multiplier can be anything from 5 to 30, depending on the expectations  of the seller, on the quality of the site, on the niche and other  factors).&lt;br /&gt;
Some people also make money trading and flipping websites. They  either create them from scratch or buy existing ones, and after some  revamping they sell them for a profit.&lt;br /&gt;
Related links:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.entrepreneurs-journey.com/274/how-to-buy-a-website-and-flip-it-for-profit/&quot;&gt;How To Buy A Website And Flip It For Profit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.entrepreneurs-journey.com/265/how-to-sell-a-website-how-much-is-your-website-worth/&quot;&gt;How To Sell A Website – How Much Is Your Website Worth?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.webmasterworld.com/forum25/3062.htm&quot;&gt;Where to sell a website? How to go about selling it?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h4&gt;Indirect Methods&lt;/h4&gt;22. &lt;strong&gt;Selling an Ebook&lt;/strong&gt;&lt;br /&gt;
Perhaps one of the oldest money making strategies on the web, using a  website to promote a related ebook is a very efficient way to generate  revenue.&lt;br /&gt;
You could either structure the website around the book itself, like &lt;a href=&quot;http://www.seobook.com/&quot;&gt;SEOBook.com&lt;/a&gt;, or launch the ebook based on the success of the website, like FreelanceSwitch did we the book &lt;a href=&quot;http://freelanceswitch.com/book&quot;&gt;How to be a Rockstar Freelancer&lt;/a&gt;.&lt;br /&gt;
Related links:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://northxeast.com/marketing/writing-an-ebook-for-your-blog/&quot;&gt;Writing an ebook for your blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.ebookapprentice.com/sell/index.html&quot; rel=&quot;nofollow&quot;&gt;How to sell ebooks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.internetbasedmoms.com/ideas/sell-ebook.html&quot; rel=&quot;nofollow&quot;&gt;Processing payments for your ebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://onlinebusiness.about.com/od/startingup/a/digital.htm&quot; rel=&quot;nofollow&quot;&gt;How to sell digital products online&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.programurl.com/software/sell-ebook.htm&quot; rel=&quot;nofollow&quot;&gt;List of ebook selling software&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;23. &lt;strong&gt;Selling a Hardcover Book&lt;/strong&gt;&lt;br /&gt;
Many authors and journalists leverage their blogs or websites to sell copies of hardcover books. Examples include &lt;a href=&quot;http://blog.guykawasaki.com/&quot;&gt;Guy Kawasaki&lt;/a&gt;, &lt;a href=&quot;http://sethgodin.typepad.com/&quot;&gt;Seth Godin&lt;/a&gt; and &lt;a href=&quot;http://gladwell.typepad.com/gladwellcom/&quot;&gt;Malcolm Gladwell&lt;/a&gt;.&lt;br /&gt;
While most of these people were already renowned authors before they  created their website, one could also follow the other way around.  Lorelle VanFossen did exactly that with her &lt;a href=&quot;http://lorelle.wordpress.com/books/blogging-tips/&quot;&gt;Blogging Tips&lt;/a&gt; book. First she built her authority on the subject via her blog, and afterwards she published the book.&lt;br /&gt;
List of self publishing and publishing services:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.lulu.com/&quot; rel=&quot;nofollow&quot;&gt;Lulu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.selfpublishing.com/&quot; rel=&quot;nofollow&quot;&gt;Self Publishing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.iuniverse.com/&quot; rel=&quot;nofollow&quot;&gt;iUniverse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.wordclay.com/&quot; rel=&quot;nofollow&quot;&gt;WordClay&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;24. &lt;strong&gt;Selling Templates or WordPress Themes&lt;/strong&gt;&lt;br /&gt;
As more and more people decide to get an online presence, website templates and WordPress themes become hotter and hotter.&lt;br /&gt;
On this segment you have mainstream websites like &lt;a href=&quot;http://www.templatemonster.com/&quot;&gt;TemplateMonster&lt;/a&gt;, as well as individual designers who decide to promote and sell their work independently. &lt;br /&gt;
&lt;a href=&quot;http://www.briangardner.com/themes&quot;&gt;Brian Gardner&lt;/a&gt; and &lt;a href=&quot;http://www.uniqueblogdesigns.com/ExclusiveThemes/Default.aspx&quot;&gt;Unique Blog Designs&lt;/a&gt; are two examples of websites that make money with the sales of premium and custom WordPress themes.&lt;br /&gt;
25. &lt;strong&gt;Offering Consulting and Related Services&lt;/strong&gt;&lt;br /&gt;
Depending on your niche, you could make money by offering consulting  and related services. If you are also the author of your blog, the  articles and information that you will share will build your profile and  possibly certify your expertise on that niche, making it easier to gain  customers.&lt;br /&gt;
&lt;a href=&quot;http://www.chrisg.com/&quot;&gt;Chris Garrett&lt;/a&gt; used a similar  strategy. First he created a highly influential blog on the blogging and  new media niche, and afterwards he started offering consulting services  to clients with related problems and needs.&lt;br /&gt;
26. &lt;strong&gt;Creating an Email List or Newsletter&lt;/strong&gt;&lt;br /&gt;
Email lists and newsletters represent one of the most powerful  marketing and money making tools on the Internet. They offer incredible  conversion rates, and the possibility to call people to action in a very  efficient way.&lt;br /&gt;
Creating a big list is a difficult task though, so if you have a  popular website you could leverage it to increase the number of  subscribers on your list.&lt;br /&gt;
&lt;a href=&quot;http://www.entrepreneurs-journey.com/&quot;&gt;Yaro Starak&lt;/a&gt; is a  famous Internet marketer, and if you visit his blog you will notice that  right on top he has a section encouraging visitors to subscribe to his  email newsletter. Yaro generates five figures in revenues each month  from his email newsletters, proving that this method works.&lt;br /&gt;
List of software to manage email newsletters:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.aweber.com/&quot; rel=&quot;nofollow&quot;&gt;AWeber&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.interspire.com/sendstudio/&quot; rel=&quot;nofollow&quot;&gt;SendStudio NX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.phpautoresponder.com/&quot; rel=&quot;nofollow&quot;&gt;PHP Autoresponder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://cjaffiliate.roving.com/&quot; rel=&quot;nofollow&quot;&gt;Constant Contact&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;27. &lt;strong&gt;Mentoring programs&lt;/strong&gt;&lt;br /&gt;
People are willing to pay for someone or something that will teach  them and give them knowledge (as opposed to mere information). Education  is one of the biggest industries in the world, and the online landscape  behaves in a similar way.&lt;br /&gt;
Creating a mentoring program related to the niche of your website  could be very profitable if you manage to structure and promote it  adequately. There is a wide range of media and tools that you can use to  deliver the information, from text articles to audio and video lessons.&lt;br /&gt;
Brian Clark leveraged the success of &lt;a href=&quot;http://www.copyblogger.com/&quot;&gt;Copyblogger&lt;/a&gt; to launch a mentoring program teaching people how to build membership and how to sell content online. The program is titled &lt;a href=&quot;http://teachingsells.com/&quot;&gt;Teaching Sells&lt;/a&gt;, and it costs $97 monthly. Sounds expensive, but they have over 1,000 members.&lt;br /&gt;
28. &lt;strong&gt;Creating a conference around the website&lt;/strong&gt;&lt;br /&gt;
If your website takes off and becomes an authority on its niche, you  could create a conference around it. Depending on the size of your  audience, the event could attract thousands of people, and you could  make money directly from conference passes and sponsors.&lt;br /&gt;
&lt;a href=&quot;http://searchengineland.com/&quot;&gt;Search Engine Land&lt;/a&gt;, for  instance, created a series of conferences that visit several cities on  the United States and on other countries as well. The conferences are  called &lt;a href=&quot;http://searchmarketingexpo.com/&quot;&gt;Search Marketing Expo&lt;/a&gt;, and the tickets and passes cost thousands of dollars.</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/5889465444418237037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2011/12/28-ways-to-make-money-with-your-website.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/5889465444418237037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/5889465444418237037'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2011/12/28-ways-to-make-money-with-your-website.html' title='28 Ways to Make Money with Your Website'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-5515589752809215415</id><published>2011-12-08T17:27:00.000+08:00</published><updated>2011-12-08T17:27:46.136+08:00</updated><title type='text'>Installing WordPress on SQL Server</title><content type='html'>Before you read this article, please note: the easiest way to install WordPress on SQL Server or SQL Azure is to use the Getting Started page. If you’re still having trouble or want more details, read on!&lt;br /&gt;
These instructions assume you’re installing WordPress on Windows 7 or  Windows Server 2008 or 2008 R2. If you’re installing WordPress in a  Windows share hosting environment, many of these same concepts apply.&lt;br /&gt;
Here’s a summary of the steps:&lt;br /&gt;
&lt;h2&gt;&lt;a href=&quot;&quot; name=&quot;prerequisites&quot;&gt;&lt;/a&gt;1. Install the Prerequisites&lt;/h2&gt;Use the Microsoft Web Platform Installer. Be sure you have:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;II7 or above (Windows Vista, Windows 7, Windows Server 2008, Windows Server 2008 R2)&lt;/li&gt;
&lt;li&gt;PHP 5.2 or above&lt;/li&gt;
&lt;li&gt;SQL Server Express 2008 w/Tools or above&lt;/li&gt;
&lt;li&gt;PHP Driver for SQL Server v1.1 or above&lt;/li&gt;
&lt;li&gt;URL Rewrite 2.0 or above&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;Get Products with Web Platform Installer&lt;/h3&gt;&lt;a href=&quot;http://www.microsoft.com/web/gallery/install.aspx?appid=SQLExpress;SQLDriverPHP;sqlexpresstools;StaticContent;defaultdocument;directorybrowse;httperrors;httplogging;loggingtools;requestmonitor;requestfiltering;statuscontentcompression;iismanagementconsole;cgi;fastcgibackport;urlrewrite2&quot;&gt;Click here&lt;/a&gt; to install all these products with the Web Platform Installer.&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;297&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;513&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Click on the Get the Microsoft Web Platform button and accept the prompts to install WPI.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image1.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;139&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb1.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;509&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Click on the bar at the top of the browser to install the add-on.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image2.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;270&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb2.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;349&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Follow the onscreen prompts and grant permission for the site to open WPI.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image3.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;366&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb3.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;474&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image4.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;250&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb4.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;510&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Once the Web Platform Installer downloads and installs all the  prerequisites, it will prompt you to configure your SQL Server Express  install.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image5.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;373&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb5.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;516&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Choosing Mixed Mode Authentication and providing an (sa) password will make your web development easiest.&lt;br /&gt;
The Web Platform Installer will now download all the bits and prerequisites.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image6.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;366&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb6.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;504&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Once the download is complete, it will automatically install and configure the software.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image7.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;358&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb7.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;495&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image8.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;356&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb8.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;491&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Now you’re ready to run web applications on the &lt;a href=&quot;http://www.microsoft.com/web/platform/default.aspx&quot;&gt;Microsoft Web Platform&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;&lt;a href=&quot;&quot; name=&quot;database&quot;&gt;&lt;/a&gt;2. Configure a Database&lt;/h2&gt;In this step, you’ll create a database and a database user for your WordPress install.&lt;br /&gt;
Start by running SQL Server Management Studio from your start menu.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image9.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;416&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb9.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;319&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
You’ll be prompted to log on to SQL Server.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image10.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;326&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb10.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;416&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Connect to your database using &lt;strong&gt;Windows Authentication&lt;/strong&gt; and &lt;strong&gt;.&lt;/strong&gt;&lt;strong&gt;SQLExpress&lt;/strong&gt; for the &lt;em&gt;Server name&lt;/em&gt;.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image11.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;348&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb11.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;414&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Create a new database Login by expanding the &lt;strong&gt;Security.&lt;/strong&gt; Right click on &lt;strong&gt;Logins&lt;/strong&gt; to select &lt;strong&gt;New Login&lt;/strong&gt;.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image12.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;479&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb12.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;526&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Supply a &lt;strong&gt;Login name;&lt;/strong&gt; select &lt;strong&gt;SQL Server authentication;&lt;/strong&gt; provide a &lt;strong&gt;Password&lt;/strong&gt; and &lt;em&gt;uncheck&lt;/em&gt; &lt;strong&gt;User must change password at next login&lt;/strong&gt;. You can leave the rest of the defaults.&lt;br /&gt;
Now you need to create a database.&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image13.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;315&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb13.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;395&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Create a new Database by right clicking on &lt;strong&gt;Databases &lt;/strong&gt;to select &lt;strong&gt;New Database&lt;/strong&gt;.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image14.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;619&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb14.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;687&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Enter a &lt;strong&gt;Database name&lt;/strong&gt; and specify the &lt;strong&gt;Login name&lt;/strong&gt; of the user you created above.&lt;br /&gt;
Now you’re ready to proceed with the WordPress install.&lt;br /&gt;
&lt;h2&gt;&lt;a href=&quot;&quot; name=&quot;wordpress&quot;&gt;&lt;/a&gt;&lt;a href=&quot;&quot; name=&quot;download&quot;&gt;&lt;/a&gt;3. Download the WordPress on SQL Server Distribution&lt;/h2&gt;Go to the &lt;a href=&quot;http://wordpress.org/extend/plugins/wordpress-database-abstraction/faq/&quot;&gt;Download&lt;/a&gt; page and select the standard or Multi-User Distribution from the box on the right side of the page.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image15.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;360&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb15.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;466&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
This will take you to the SourceForge download page for the current version.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image16.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;244&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb16.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;463&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
If you try to save the ZIP file directly to your IIS directory, you’ll probably get a permissions error like below.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image17.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;276&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb17.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;453&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Save the ZIP somewhere else on your machine, extract the files and copy them into the &lt;em&gt;C:inetpubwwwrootwp-sqlsrv&lt;/em&gt; folder.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image18.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;376&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb18.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;450&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image19.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;339&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb19.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;460&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image20.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;207&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb20.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;458&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;a href=&quot;&quot; name=&quot;iis&quot;&gt;&lt;/a&gt;4. Configure IIS&lt;/h2&gt;The most common issue I’ve discovered involves WordPress’ use of HTTP errors.&lt;br /&gt;
&lt;h3&gt;Enable IIS Detailed Error Messages&lt;/h3&gt;When trying to install WordPress for the first time,you might get an  IIS 500—an internal server error that says,“There is a problem with the  resource you are looking for, and it cannot be displayed”.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image21.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;169&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb21.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;519&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
WordPress is designed to throw an HTTP 500 error if a &lt;em&gt;wp-config.php&lt;/em&gt;  file is not detected. The problem is that the default install of IIS 7  is overriding HTTP errors for external users as to now show detailed  information about the server.&lt;br /&gt;
You can temporarily override this behavior during the installation  process by telling IIS to show Detailed errors. Do this by creating a  web.config file in the root of your WordPress install with the following  content:&lt;br /&gt;
&lt;div&gt;&lt;div class=&quot;syntaxhighlighter nogutter  xml&quot; id=&quot;highlighter_631330&quot;&gt;&lt;div class=&quot;toolbar&quot;&gt;&lt;span&gt;&lt;a class=&quot;toolbar_item command_help help&quot; href=&quot;http://wordpress.visitmix.com/development/installing-wordpress-on-sql-server#&quot;&gt;?&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;?&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;xml&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;version&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;1.0&quot;&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;encoding&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;UTF-8&quot;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;?&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number2 index1 alt1&quot;&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;configuration&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number3 index2 alt2&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;system.webServer&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number4 index3 alt1&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;httpErrors&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;errorMode&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;Detailed&quot;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;/&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number5 index4 alt2&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;/&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;system.webServer&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number6 index5 alt1&quot;&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;/&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;configuration&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3&gt;Grant IIS Write Permissions to WordPress Folder&lt;/h3&gt;Next, you need to ensure your IIS has write permissions to your WordPress installation folder.&lt;br /&gt;
&lt;em&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; If IIS does not have write permissions to  your WordPress folder you will get caught in a loop where you enter your  database credentials then get taken back to the initial installation  screen.&lt;/em&gt;&lt;br /&gt;
By default IIS runs as &lt;strong&gt;IUSR&lt;/strong&gt; so you must add this user with &lt;em&gt;Write &lt;/em&gt;permission through Windows Explorer.&amp;nbsp; Browse to the installation folder, right click on the &lt;em&gt;wp-sqlsrv&lt;/em&gt; folder and select the &lt;strong&gt;Security&lt;/strong&gt; tab.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image22.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;635&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb22.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;560&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Click the &lt;strong&gt;Edit&lt;/strong&gt; button, select &lt;strong&gt;Add&lt;/strong&gt;, then type &lt;em&gt;IUSR &lt;/em&gt;for &lt;strong&gt;Enter the object names to select&lt;/strong&gt;.&amp;nbsp; Click on &lt;strong&gt;Check Names&lt;/strong&gt; and &lt;em&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;IUSR&lt;/span&gt;&lt;/em&gt; should now be underlined.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image23.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;576&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb23.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;563&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
When you click &lt;strong&gt;OK&lt;/strong&gt; the top window will close.&amp;nbsp; Make sure to give this user &lt;strong&gt;Write&lt;/strong&gt; permissions by selecting the checkbox.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image24.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;519&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb24.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;440&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;5. Install WordPress on SQL Server&lt;/h2&gt;Browse to the root of your WordPress install, which in my case is &lt;a href=&quot;http://localhost/wp-sqlsrv/&quot;&gt;http://localhost/wp-sqlsrv/&lt;/a&gt;.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image25.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;330&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb25.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;687&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Follow the prompts until you’re asked for database information.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image26.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;502&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb26.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;687&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Specify the &lt;strong&gt;Database Name&lt;/strong&gt;, &lt;strong&gt;User Name&lt;/strong&gt; and &lt;strong&gt;Password&lt;/strong&gt; you created while configuring the database. For the default SQL Server Express install, you will enter &lt;strong&gt;.SQLExpress&lt;/strong&gt; for the &lt;strong&gt;Database Host&lt;/strong&gt;.&lt;br /&gt;
Select the &lt;strong&gt;sqlsrv&lt;/strong&gt; driver for &lt;strong&gt;Database Type&lt;/strong&gt;. This will use the PHP Driver for SQL Server, which was developed and maintained by the SQL Server team.&lt;br /&gt;
You should see the screen below, with an option to &lt;strong&gt;Run the install&lt;/strong&gt;.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image27.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;234&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb27.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;687&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
If you don’t see this screen and are taken back to the first screen  of the install, that means your web server doesn’t have permission to  write to the directory&lt;em&gt;&lt;/em&gt;&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image28.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;192&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb28.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;687&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
You can get information on IIS security here.&lt;br /&gt;
If the install is moving forward, you’ll just need to enter your blog information and receive the admin password.&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image29.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;503&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb29.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;687&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Now WordPress should be up and running on SQL Server!&lt;br /&gt;
&lt;a href=&quot;http://wordpress.visitmix.com/wp-content/uploads/image30.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;465&quot; src=&quot;http://wordpress.visitmix.com/wp-content/uploads/image_thumb30.png&quot; style=&quot;border: 0px; display: inline;&quot; title=&quot;image&quot; width=&quot;687&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
The last step is to update your &lt;em&gt;web.config&lt;/em&gt; to remove the IIS Detailed errors and enable URL Rewrite.&lt;br /&gt;
&lt;h2&gt;&lt;a href=&quot;&quot; name=&quot;urlrewrite&quot;&gt;&lt;/a&gt;6. Remove IIS Detailed Errors and Configure URL Rewrite&lt;/h2&gt;Remove detailed IIS error messages and add URL Rewrite rules by  replacing the contents of your web.config with the following contents:&lt;br /&gt;
&lt;div&gt;&lt;div class=&quot;syntaxhighlighter nogutter  xml&quot; id=&quot;highlighter_470126&quot;&gt;&lt;div class=&quot;toolbar&quot;&gt;&lt;span&gt;&lt;a class=&quot;toolbar_item command_help help&quot; href=&quot;http://wordpress.visitmix.com/development/installing-wordpress-on-sql-server#&quot;&gt;?&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;?&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;xml&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;version&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;1.0&quot;&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;encoding&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;UTF-8&quot;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;?&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number2 index1 alt1&quot;&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;configuration&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number3 index2 alt2&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;system.webServer&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number4 index3 alt1&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;rewrite&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number5 index4 alt2&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;rules&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number6 index5 alt1&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;rule&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;name&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;wordpress&quot;&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;patternSyntax&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;Wildcard&quot;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number7 index6 alt2&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;match&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;url&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;*&quot;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;/&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number8 index7 alt1&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;conditions&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number9 index8 alt2&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;add&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;input&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;{REQUEST_FILENAME}&quot;&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;matchType&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;IsFile&quot;&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;negate&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;true&quot;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;/&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number10 index9 alt1&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;add&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;input&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;{REQUEST_FILENAME}&quot;&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;matchType&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;IsDirectory&quot;&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;negate&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;true&quot;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;/&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number11 index10 alt2&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;/&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;conditions&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number12 index11 alt1&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;action&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;type&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;Rewrite&quot;&lt;/code&gt; &lt;code class=&quot;xml color1&quot;&gt;url&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;xml string&quot;&gt;&quot;index.php&quot;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;/&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number13 index12 alt2&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;/&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;rule&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number14 index13 alt1&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;/&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;rules&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number15 index14 alt2&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;/&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;rewrite&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number16 index15 alt1&quot;&gt;&lt;code class=&quot;xml spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;/&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;system.webServer&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number17 index16 alt2&quot;&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;lt;/&lt;/code&gt;&lt;code class=&quot;xml keyword&quot;&gt;configuration&lt;/code&gt;&lt;code class=&quot;xml plain&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;strong&gt;Now enjoy using WordPress on SQL Server!&lt;/strong&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/5515589752809215415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2011/12/installing-wordpress-on-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/5515589752809215415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/5515589752809215415'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2011/12/installing-wordpress-on-sql-server.html' title='Installing WordPress on SQL Server'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-6030001006277855417</id><published>2011-12-05T22:41:00.000+08:00</published><updated>2011-12-05T22:41:06.903+08:00</updated><title type='text'>iPad Programming Tutorial – Hello World++</title><content type='html'>&lt;h4&gt;Introduction&lt;/h4&gt;Now, that the iPad has been released, I’m sure you are all scrambling  for ideas on how to snag a piece of the maket in the&amp;nbsp;imminent&amp;nbsp;gold  rush. &amp;nbsp;iCodeBlog is going to help you on your journey with a series of  iPad tutorials to come.&lt;br /&gt;
Since the iPad uses the same SDK as the iPhone, all of the code under  the hood is almost identical. &amp;nbsp;Actually, when looking at the &lt;a href=&quot;http://developer.apple.com/iphone/prerelease/library/releasenotes/General/WhatsNewIniPhoneOS/Articles/iPhoneOS3_2.html#//apple_ref/doc/uid/TP40009337-SW1&quot;&gt;new and changed API classes&lt;/a&gt;,  you will realize that most of them are user interface related. &amp;nbsp;This is  good news for us since we have already been coding iPhone.&lt;br /&gt;
While this tutorial is called “Hello World”, it is really much more  than that. &amp;nbsp;I assume you already have working&amp;nbsp;knowledge&amp;nbsp;of  iPhone/Objective-C programming.&lt;br /&gt;
&lt;h4&gt;What We Will Be Creating&lt;/h4&gt;In today’s tutorial, I will be showing you how to create an iPad  project that uses the UISplitViewController to display content in 2  separate panes. &amp;nbsp;We will also be touching on some of the new design/UI  patterns and giving an overall introduction to iPad programming.&lt;br /&gt;
The project will be based on one of my earliest tutorials that displayed a list of fruit  in a UITableView and drilled down when they were selected. &amp;nbsp;We will be  expanding on that example and creating something that will look like  this.&lt;br /&gt;
&lt;a href=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/watermelon-ss1.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-1737&quot; height=&quot;387&quot; src=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/watermelon-ss1.png&quot; title=&quot;watermelon-ss&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
It uses a UISplitViewController to display a UITableView on the left  and a UIView with a UIImageView subview on the right. &amp;nbsp;This project is  actually quite simple to create as the template code provides much of  the code we need to get started.&lt;br /&gt;
&lt;h4&gt;Getting Started&lt;/h4&gt;1. Make sure you have downloaded the 3.2 SDK form &lt;a href=&quot;http://developer.apple.com/iphone/&quot;&gt;http://developer.apple.com/iphone/&lt;/a&gt;. &amp;nbsp;The iPad simulator will come with this download.&lt;br /&gt;
2. Download the resources needed for this project and unzip them &lt;a href=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/iPadHelloWorldResources1.zip&quot;&gt;iPadHelloWorldResources.zip&lt;/a&gt; . (contains image files and a plist we will be using to load the images)&lt;br /&gt;
&lt;h4&gt;Creating The Project&lt;/h4&gt;Starting a project for the iPad is no different than starting one for  the iPhone. &amp;nbsp;When you open XCode and select File-&amp;gt;New Project, you  should notice the addition of a Split View-Based Application. &amp;nbsp;Select  this and name it iPadHelloWorld.&lt;br /&gt;
&lt;a href=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/Screen-shot-2010-02-01-at-12.37.12-PM1.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-1739&quot; height=&quot;418&quot; src=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/Screen-shot-2010-02-01-at-12.37.12-PM1.png&quot; title=&quot;Screen shot 2010-02-01 at 12.37.12 PM&quot; width=&quot;544&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
This will create a basic application with a UITableView on the left  and a UIView on the right. &amp;nbsp;It will even populate the table with some  sample elements. &amp;nbsp;It will add the following files to your project.&lt;br /&gt;
&lt;a href=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/Screen-shot-2010-02-02-at-11.02.17-AM1.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-1740&quot; height=&quot;349&quot; src=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/Screen-shot-2010-02-02-at-11.02.17-AM1.png&quot; title=&quot;Screen shot 2010-02-02 at 11.02.17 AM&quot; width=&quot;247&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Here is a brief description of each of these files:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;iPadHelloWorldAppDelegate – This is similar to every app delegate.  &amp;nbsp;If you look in the application:didFinishLaunchingWithOptions method,  you will see that the UISplitViewController is being allocated with the  MasterViewController and DetailViewControllers.&lt;/li&gt;
&lt;li&gt;MasterViewController – A UITableViewController, nothing fancy. &amp;nbsp;It will be handling the view on the left hand side.&lt;/li&gt;
&lt;li&gt;DetailViewController – This handles the content view that you see on  the right hand side. &amp;nbsp;We will be updating this as the user selects  different rows in the table to the left. &amp;nbsp;This simply houses a single  view.&lt;/li&gt;
&lt;/ul&gt;Go ahead and press Build and Run to check out the&amp;nbsp;application. &amp;nbsp;If  you haven’t already done so, play around with the iPad contacts and  settings apps as well.&lt;br /&gt;
&lt;strong&gt;Note: When you launch the&amp;nbsp;application, you will only see the  main view since the simulator runs in vertical mode. &amp;nbsp;To see the views  side-by-side, rotate the simulator by clicking “Hardware -&amp;gt; Rotate  Left/Right”. &amp;nbsp;You can also press CMD-&amp;gt;Arrow Left/Right on the  keyboard.&lt;/strong&gt;&lt;br /&gt;
&lt;h4&gt;Importing The Project Images&lt;/h4&gt;Once you have had some time to play with the new iPad project, you  will now need to import the images needed for this project. &amp;nbsp;After  downloading and unzipping the files in from this tutorial, drag them  into the project folder called “Resources-iPad”.&lt;br /&gt;
XCode will prompt you to copy the files, check yes and click OK.&lt;br /&gt;
&lt;a href=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/Screen-shot-2010-02-02-at-11.30.31-AM1.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-1741&quot; height=&quot;413&quot; src=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/Screen-shot-2010-02-02-at-11.30.31-AM1.png&quot; title=&quot;Screen shot 2010-02-02 at 11.30.31 AM&quot; width=&quot;450&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Make sure you include all 4 images files as well as the file named fruits.plist.&lt;br /&gt;
&lt;h4&gt;Displaying The List Of Fruits&lt;/h4&gt;Displaying our fruits list is no different than displaying data in  any other UITableView. &amp;nbsp;Let’s begin by opening MasterViewController.h  and adding a declaration for our fruits array.&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;objc&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;color: #6e371a;&quot;&gt;#import&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #a61390;&quot;&gt;@class&lt;/span&gt; DetailViewController;
&amp;nbsp;
&lt;span style=&quot;color: #a61390;&quot;&gt;@interface&lt;/span&gt; MasterViewController &lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt; UITableViewController &lt;span style=&quot;color: #002200;&quot;&gt;{&lt;/span&gt;
    DetailViewController &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt;detailViewController;
    &lt;span style=&quot;color: #400080;&quot;&gt;NSArray&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt; fruits;
&lt;span style=&quot;color: #002200;&quot;&gt;}&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #a61390;&quot;&gt;@property&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;nonatomic, retain&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt; IBOutlet DetailViewController &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt;detailViewController;
&lt;span style=&quot;color: #a61390;&quot;&gt;@property&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;nonatomic, retain&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #400080;&quot;&gt;NSMutableArray&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt;fruits;
&amp;nbsp;
&lt;span style=&quot;color: #a61390;&quot;&gt;@end&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;As you can see, there is nothing new here. &amp;nbsp;We simply declare our fruits array and create a property for it.&lt;br /&gt;
We will be loading the fruits from the plist file that you imported  into your project in the last step. &amp;nbsp;Loading content from a plist file  is a very quick and easy solution when you don’t require a database.&lt;br /&gt;
Open up MasterViewController.m and add the following line of code to your viewDidLoad method.&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;objc&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;color: #002200;&quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a61390;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt;viewDidLoad &lt;span style=&quot;color: #002200;&quot;&gt;{&lt;/span&gt;
    &lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;super viewDidLoad&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt;;
    self.fruits &lt;span style=&quot;color: #002200;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #400080;&quot;&gt;NSArray&lt;/span&gt; arrayWithContentsOfFile&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #400080;&quot;&gt;NSBundle&lt;/span&gt; mainBundle&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt; pathForResource&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #bf1d1a;&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color: #bf1d1a;&quot;&gt;&quot;fruits&quot;&lt;/span&gt; ofType&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #bf1d1a;&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color: #bf1d1a;&quot;&gt;&quot;plist&quot;&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt; retain&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt;;
&lt;span style=&quot;color: #002200;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;The file fruits.plist is essentially an array that has been written  out to a file. &amp;nbsp;If you open it up, it looks very similar to XML. &amp;nbsp;Now  that our fruits array has been populated, let’s implement each of the  UITableView delegate and datasource methods to populate the table.&lt;br /&gt;
&lt;strong&gt;UITableView datasource methods&lt;/strong&gt;&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;objc&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;color: #002200;&quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;NSInteger&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt;tableView&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;UITableView &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt;aTableView numberOfRowsInSection&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;NSInteger&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt;section &lt;span style=&quot;color: #002200;&quot;&gt;{&lt;/span&gt;
    &lt;span style=&quot;color: #11740a; font-style: italic;&quot;&gt;// Return the number of rows in the section.&lt;/span&gt;
    &lt;span style=&quot;color: #a61390;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;fruits count&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt;;
&lt;span style=&quot;color: #002200;&quot;&gt;}&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #002200;&quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;UITableViewCell &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt;tableView&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;UITableView &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt;tableView cellForRowAtIndexPath&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #400080;&quot;&gt;NSIndexPath&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt;indexPath &lt;span style=&quot;color: #002200;&quot;&gt;{&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #a61390;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #400080;&quot;&gt;NSString&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt;CellIdentifier &lt;span style=&quot;color: #002200;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #bf1d1a;&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color: #bf1d1a;&quot;&gt;&quot;CellIdentifier&quot;&lt;/span&gt;;
&amp;nbsp;
 &lt;span style=&quot;color: #11740a; font-style: italic;&quot;&gt;// Dequeue or create a cell of the appropriate type.&lt;/span&gt;
 UITableViewCell &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt;cell &lt;span style=&quot;color: #002200;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;tableView dequeueReusableCellWithIdentifier&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;CellIdentifier&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt;;
    &lt;span style=&quot;color: #a61390;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;cell &lt;span style=&quot;color: #002200;&quot;&gt;==&lt;/span&gt; &lt;span style=&quot;color: #a61390;&quot;&gt;nil&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;{&lt;/span&gt;
        cell &lt;span style=&quot;color: #002200;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;UITableViewCell alloc&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt; initWithStyle&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;UITableViewCellStyleDefault reuseIdentifier&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;CellIdentifier&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt; autorelease&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt;;
        cell.accessoryType &lt;span style=&quot;color: #002200;&quot;&gt;=&lt;/span&gt; UITableViewCellAccessoryNone;
    &lt;span style=&quot;color: #002200;&quot;&gt;}&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #11740a; font-style: italic;&quot;&gt;// Get the object to display and set the value in the cell.&lt;/span&gt;
    cell.textLabel.text &lt;span style=&quot;color: #002200;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;self.fruits objectAtIndex&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;indexPath.row&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt;;
    &lt;span style=&quot;color: #a61390;&quot;&gt;return&lt;/span&gt; cell;
&lt;span style=&quot;color: #002200;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;Nothing special… We first tell the tableview that we want fruits.count (4 in this case) number of rows.&lt;br /&gt;
Next, we display the name of the fruit in each tableview cell. &amp;nbsp;If you want to learn more on UITableViews&lt;br /&gt;
&lt;strong&gt;UITableView delegate methods&lt;/strong&gt;&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;objc&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;color: #002200;&quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a61390;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt;tableView&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;UITableView &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt;aTableView didSelectRowAtIndexPath&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #400080;&quot;&gt;NSIndexPath&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt;indexPath &lt;span style=&quot;color: #002200;&quot;&gt;{&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #11740a; font-style: italic;&quot;&gt;/*
     When a row is selected, set the detail view controller&#39;s detail item to the item associated with the selected row.
     */&lt;/span&gt;
    detailViewController.detailItem &lt;span style=&quot;color: #002200;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;self.fruits objectAtIndex&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt; indexPath.row&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt;;
&lt;span style=&quot;color: #002200;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;Here, we are simply setting the detailItem property of the  detailViewController to the selected fruit. &amp;nbsp;We will discuss this  property later in this section, but for now all you need to know is that  its type is &lt;strong&gt;id.&lt;/strong&gt;&lt;br /&gt;
At this point, go ahead and press Build and Run to see your code in action. &amp;nbsp;You should see something that looks like this:&lt;br /&gt;
&lt;a href=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/tableview1.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-1744&quot; height=&quot;387&quot; src=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/tableview1.png&quot; title=&quot;tableview&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
It displays the list of fruits, but nothing happens when you select a cell (well the title of the detailView may change).&lt;br /&gt;
Now that we have our list of fruits displayed, we now need to implement the code to display their&amp;nbsp;corresponding&amp;nbsp;image.&lt;br /&gt;
&lt;h4&gt;Displaying The Fruits&lt;/h4&gt;Displaying the selected fruit is actually quite simple. &amp;nbsp;The first thing we need to do is add a UIImageView to our detailView.&lt;br /&gt;
Start by adding the IBOutlet for the image view. &amp;nbsp;Open up DetailViewController.h and add the following code:&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;objc&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;color: #a61390;&quot;&gt;@interface&lt;/span&gt; DetailViewController &lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt; UIViewController  &lt;span style=&quot;color: #002200;&quot;&gt;{&lt;/span&gt;
&amp;nbsp;
    UIPopoverController &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt;popoverController;
    UINavigationBar &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt;navigationBar;
&amp;nbsp;
    &lt;span style=&quot;color: #a61390;&quot;&gt;id&lt;/span&gt; detailItem;
&amp;nbsp;
    IBOutlet UIImageView &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt; fruitImageView;
&lt;span style=&quot;color: #002200;&quot;&gt;}&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #a61390;&quot;&gt;@property&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;nonatomic, retain&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt; UIPopoverController &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt;popoverController;
&lt;span style=&quot;color: #a61390;&quot;&gt;@property&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;nonatomic, retain&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt; IBOutlet UINavigationBar &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt;navigationBar;
&amp;nbsp;
&lt;span style=&quot;color: #a61390;&quot;&gt;@property&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;nonatomic, retain&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #a61390;&quot;&gt;id&lt;/span&gt; detailItem;
&amp;nbsp;
&lt;span style=&quot;color: #a61390;&quot;&gt;@property&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;nonatomic, retain&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt; IBOutlet UIImageView &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt; fruitImageView;
&amp;nbsp;
&lt;span style=&quot;color: #a61390;&quot;&gt;@end&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;All of the code here comes with the template except the code to add  the IBOutlet UIImageView. &amp;nbsp;Once you have added this open up  DetailView.xib in interface builder.&lt;br /&gt;
Add a UIImageView on to the view and size it to 500×500.&lt;br /&gt;
&lt;a href=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/notitle1.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-1746&quot; height=&quot;672&quot; src=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/notitle1.png&quot; title=&quot;notitle&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Now, click on the File’s Owner object and open the connection inspector (Tools -&amp;gt; connection inspector).&lt;br /&gt;
Drag from your imageView IBOutlet to the UIImageView and release. &amp;nbsp;The UIImageView is now connected to your outlet.&lt;br /&gt;
&lt;strong&gt;Note: If you want the images to not skew, set the content mode of the image view (in the attributes inspector) to Aspect Fit.&lt;/strong&gt;&lt;br /&gt;
Now that the imageview has been connected, it’s time to write the  code that updates it. &amp;nbsp;Close Interface Builder and open the file  DetailViewController.m and add the following lines to the setDetailItem  method:&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;objc&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;color: #002200;&quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a61390;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt;setDetailItem&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a61390;&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt;newDetailItem &lt;span style=&quot;color: #002200;&quot;&gt;{&lt;/span&gt;
    &lt;span style=&quot;color: #a61390;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;detailItem &lt;span style=&quot;color: #002200;&quot;&gt;!=&lt;/span&gt; newDetailItem&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;{&lt;/span&gt;
        &lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;detailItem release&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt;;
        detailItem &lt;span style=&quot;color: #002200;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;newDetailItem retain&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #11740a; font-style: italic;&quot;&gt;// Update the view.&lt;/span&gt;
        navigationBar.topItem.title &lt;span style=&quot;color: #002200;&quot;&gt;=&lt;/span&gt; detailItem;
 &lt;span style=&quot;color: #400080;&quot;&gt;NSString&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;*&lt;/span&gt; imageName &lt;span style=&quot;color: #002200;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #400080;&quot;&gt;NSString&lt;/span&gt; stringWithFormat&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #bf1d1a;&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color: #bf1d1a;&quot;&gt;&quot;%@.png&quot;&lt;/span&gt;,detailItem&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt;;
 &lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;self.fruitImageView setImage&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;UIImage imageNamed&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;imageName&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt;;
    &lt;span style=&quot;color: #002200;&quot;&gt;}&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #a61390;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;(&lt;/span&gt;popoverController &lt;span style=&quot;color: #002200;&quot;&gt;!=&lt;/span&gt; &lt;span style=&quot;color: #a61390;&quot;&gt;nil&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #002200;&quot;&gt;{&lt;/span&gt;
        &lt;span style=&quot;color: #002200;&quot;&gt;[&lt;/span&gt;popoverController dismissPopoverAnimated&lt;span style=&quot;color: #002200;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #a61390;&quot;&gt;YES&lt;/span&gt;&lt;span style=&quot;color: #002200;&quot;&gt;]&lt;/span&gt;;
    &lt;span style=&quot;color: #002200;&quot;&gt;}&lt;/span&gt;
&lt;span style=&quot;color: #002200;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;Most of this code has been added by the template and I won’t discuss  it too much in this tutorial. &amp;nbsp;But for now, the important additions are  the lines that load the image based on &amp;nbsp;the name of the fruit and the  one below it that sets the image property of the image view.&lt;br /&gt;
There you have it! Build and go and the application should function  as mentioned. &amp;nbsp;Here is another screenshot of the final product.&lt;br /&gt;
&lt;a href=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/cherry1.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-1747&quot; height=&quot;387&quot; src=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/cherry1.png&quot; title=&quot;cherry&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h4&gt;Another Cool Feature Of SplitViewController&lt;/h4&gt;When in vertical mode, the SplitViewController gives you another new  UI element called the UIPopOverView. &amp;nbsp;Collin will have a tutorial up  soon on this view, but the figure below shows you what I’m talking  about.&lt;br /&gt;
&lt;a href=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/popover1.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-1748&quot; height=&quot;645&quot; src=&quot;http://staging.icodeblog.com/wp-content/uploads/2010/02/popover1.png&quot; title=&quot;popover&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
When the device is vertical, it will automatically rotate your view  and provide a UIPopoverView when the “Master List” button is pretty.  (BTW this button is also customizable).</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/6030001006277855417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2011/12/ipad-programming-tutorial-hello-world.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/6030001006277855417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/6030001006277855417'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2011/12/ipad-programming-tutorial-hello-world.html' title='iPad Programming Tutorial – Hello World++'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-6569318989532354855</id><published>2011-12-04T21:23:00.000+08:00</published><updated>2011-12-04T21:23:55.964+08:00</updated><title type='text'>HowTo: Configure WordPress To Use A Content Delivery Network (CDN)</title><content type='html'>Research shows that if your web pages take longer than 5 seconds to load, you lose  50% of your viewers and sales. You can speed up your wordpress blog by  using a CDN to display content to users faster and more efficiently. You  can distributes common files or content such as css, javascript,  uploaded images, videos and much more through a CDN, which serves the  content from the closest cdn edge server to the end-user. In this  tutorial, I will explains how to configure WordPress, Apache/Lighttpd  webserver, Bind dns server to use a CDN to distribute your common files  such as css, js, user uploaded files and lighten load on your web  server.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;What Is A CDN?&lt;/h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Content_delivery_network&quot; target=&quot;_blank&quot;&gt;A content delivery network&lt;/a&gt;  or content distribution network (CDN) is a system of computers  containing copies of data, placed at various points in a network so as  to maximize bandwidth for access to the data from clients throughout the  network. A client accesses a copy of the data near to the client, as  opposed to all clients accessing the same central server, so as to avoid  bottleneck near that server. A cdn will increase speed and efficiency  for your blog.&lt;br /&gt;
&lt;div style=&quot;float: right; margin-left: 5px; margin-top: 0px;&quot;&gt;&lt;a href=&quot;http://www.cyberciti.biz/tips/category/networking&quot; title=&quot;See all Linux/UNIX networking related tips/articles&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://files.cyberciti.biz/cbzcache/3rdparty/networking.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h2&gt;What Are The Advantages Of Using CDN Over Central Server?&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Speed&lt;/strong&gt;  - All common media files distributed via CDN. For example,  files.cyberciti.biz configured as CDN subdomain. Everything hosted on  files.cyberciti.biz is geographically closer to the end-user. If you run  dns query over files.cyberciti.biz, it will return an IP geographically  closer to you.&lt;br /&gt;
&lt;code&gt;$ host files.cyberciti.biz&lt;br /&gt;
$ ping files.cyberciti.biz&lt;br /&gt;
&lt;/code&gt;&lt;/li&gt;
This will increase delivery speed and avoids network congestion on your own server.
&lt;li&gt;&lt;strong&gt;Security&lt;/strong&gt; - It adds additional level of security.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Availability&lt;/strong&gt; - CDNs offers 100% availability, even with large power, network or hardware outages.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;Different Types Of CDNs&lt;/h2&gt;A CDN can use various methods to distribute your content such as:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Peer to peer CDN&lt;/strong&gt;  - This is used to distribute latest episode of a soap opera (movies /  TV shows) or some sort of software patch/update in short period of time  to large number of users.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Origin Pull CDN&lt;/strong&gt; -  This is useful to distribute small files such as javascript, css,  images, text, pdf, .doc, .xls etc. This is recommended for WordPress.   All content is stored on your own server called &quot;Origin Pull Host&quot;. This  host  is then registered with the CDN.  When the first user requests  the content, it is pulled to the CDN network from your host and  delivered via CDN to the closest point to that end user. The content is  cached on CDN with a TTL (or max age and Etags is also used). This kind  of configuration requires storage on your own server and not on the CDN  server. The first requesting user has an average CDN experience, while  later users have very fast user delivery experience. This is recommended  for file size &amp;lt;= 10MB.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PoP Pull CDN &lt;/strong&gt; - You  need to upload content to the CDN host server, where it is stored for  delivery. This option is little expensive as you need to purchase the  CDN storage with provider along with bandwidth. This is recommend for  large files and video streaming etc. You need to upload files to the CDN  server using FTP / SCP or API.&lt;/li&gt;
&lt;/ol&gt;&lt;h2&gt;Content Delivery Service Providers&lt;/h2&gt;A  list of some of the larger content delivery network providers. Do your  own research before purchasing CDN service from any one of the following  provider:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Amazon CloudFront&lt;/li&gt;
&lt;li&gt;Akamai&lt;/li&gt;
&lt;li&gt;CacheFly&lt;/li&gt;
&lt;li&gt;EdgeCast Networks&lt;/li&gt;
&lt;li&gt;Internap&lt;/li&gt;
&lt;li&gt;Level 3 Communications&lt;/li&gt;
&lt;li&gt;Limelight Networks&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;Our Sample Setup&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Blog URL&lt;/strong&gt; : http://nixcraft.in/ - This is hosted on your own server using Apache, Lighttpd, IIS or Nginx.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Origin Pull URL&lt;/strong&gt;  : http://www-origin.nixcraft.in/ - This is hosted on your own server.  You need to configure your web server, wordpress and dns server to use  this. This is called as &quot;Origin Pull Host&quot; which is a CDN method by  which content is pulled from your web server.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CDN URL&lt;/strong&gt;  : http://files.nixcraft.in/ - This is a cdn url hosted by one of the  above CDN provider. This url always point to an edge server via  proprietor DNS hacks. files.nixcraft.in must be set as CNAME records  which will point to domain names of CDN server.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CDN DNS CNAME&lt;/strong&gt;  : files.nixcraft.in.example.com - example.com is one of the above CDN  provider. This is must be set as CNAME for files.nixcraft.in&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;Step # 1: Purchase CDN Service&lt;/h2&gt;The  cost varies between CDN providers. Check CDN service providers website  for more information. Next, you need to use service providers &quot;control  panel&quot; to configure an &quot;Origin Pull Host&quot; for each domain. In other  words configure files.nixcraft.in in origin pull mode. The control panel  will also provide your an option to setup CDN dns CNAME. You need to  use same CNAME in step # 2. Once the configuration is active and the  CNAME is resolving, calls to files.nixcraft.in will be cached from  www-origin.nixcraft.in.&lt;br /&gt;
&lt;h2&gt;Step # 2: Update Your DNS Server&lt;/h2&gt;Assuming that you are using BIND dns server edit your zone file and add entry as follows:&lt;br /&gt;
&lt;pre&gt;; CDN CNAME mapping for files.nixcraft.in
files                3660       IN CNAME files.nixcraft.in.example.com.
; Your www-origin url (note nixcraft.in is also hosted on same server IP 123.1.2.3)
www-origin      3600       IN A 123.1.2.3&lt;/pre&gt;Reload your named:&lt;br /&gt;
&lt;code&gt;# rndc reload&lt;/code&gt;&lt;br /&gt;
To  keep your configuration simple use same web server for origin pull  domain and main domain i.e. host both www-origin.nixcraft.in and  nixcraft.in on same web server. This allows you to directly upload and  map files to the CDN server.&lt;br /&gt;
Please note that you can setup CNAME and origin host names using your ISPs DNS control panel too.&lt;br /&gt;
&lt;h2&gt;Step # 3: Configure Origin Pull Web Server&lt;/h2&gt;You need to configure www-origin.nixcraft.in as follows:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Origin pull DocumentRoot&lt;/strong&gt;: /home/httpd/www-origin.nixcraft.in - All your .css, .js and uploaded files are hosted here.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Server Blog DocumentRoot&lt;/strong&gt;: /home/httpd/nixcraft.in - All your wordpress files are hosted here.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MaxAge&lt;/strong&gt;: Set cache-lifetime headers for static files for cdn network.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Etag&lt;/strong&gt;s: &lt;a href=&quot;http://en.wikipedia.org/wiki/HTTP_ETag&quot; target=&quot;_blank&quot;&gt;An ETag&lt;/a&gt;  (entity tag) is part of HTTP, the protocol for the World Wide Web. It  is a response header that may be returned by an HTTP/1.1 compliant web  server and is used to determine change in content at a given URL. When a  new HTTP response contains the same ETag as an older HTTP response, the  client can conclude that the content is the same without further  downloading.&lt;/li&gt;
&lt;/ul&gt;Here is a sample Lighttpd lighttpd.conf entry for the same:&lt;br /&gt;
&lt;pre class=&quot;ini&quot;&gt;# Configure ETags
etag.use-&lt;span style=&quot;color: #000099;&quot;&gt;inode &lt;/span&gt;= &lt;span style=&quot;color: #993333;&quot;&gt;&quot;enable&quot;&lt;/span&gt;
etag.use-&lt;span style=&quot;color: #000099;&quot;&gt;mtime &lt;/span&gt;= &lt;span style=&quot;color: #993333;&quot;&gt;&quot;enable&quot;&lt;/span&gt;
etag.use-&lt;span style=&quot;color: #000099;&quot;&gt;size &lt;/span&gt;= &lt;span style=&quot;color: #993333;&quot;&gt;&quot;enable&quot;&lt;/span&gt;
static-file.&lt;span style=&quot;color: #000099;&quot;&gt;etags &lt;/span&gt;= &lt;span style=&quot;color: #993333;&quot;&gt;&quot;enable&quot;&lt;/span&gt;
&amp;nbsp;
###### CDN FILES via WordPress Upload ##############
$HTTP&lt;span&gt;[&lt;/span&gt;&lt;span style=&quot;color: #993333;&quot;&gt;&quot;host&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;  == &lt;span style=&quot;color: #993333;&quot;&gt;&quot;www-origin.nixcraft.in&quot;&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;
        server.document-&lt;span style=&quot;color: #000099;&quot;&gt;root &lt;/span&gt;= &lt;span style=&quot;color: #993333;&quot;&gt;&quot;/home/httpd/www-origin.nixcraft.in&quot;&lt;/span&gt;
        accesslog.&lt;span style=&quot;color: #000099;&quot;&gt;filename         &lt;/span&gt;= &lt;span style=&quot;color: #993333;&quot;&gt;&quot;/var/log/lighttpd/cdn.access.log&quot;&lt;/span&gt;
 #  Set max age
        $HTTP&lt;span&gt;[&lt;/span&gt;&lt;span style=&quot;color: #993333;&quot;&gt;&quot;url&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt; =~ &lt;span style=&quot;color: #993333;&quot;&gt;&quot;^/&quot;&lt;/span&gt; &lt;span&gt;{&lt;/span&gt;
            expire.&lt;span style=&quot;color: #000099;&quot;&gt;url &lt;/span&gt;=&lt;span style=&quot;color: #660066;&quot;&gt; &lt;span&gt;(&lt;/span&gt; &lt;/span&gt;&lt;span style=&quot;color: #993333;&quot;&gt;&quot;&quot;&lt;/span&gt; =&amp;gt; &lt;span style=&quot;color: #993333;&quot;&gt;&quot;access 60 days&quot;&lt;/span&gt; &lt;span&gt;)&lt;/span&gt;
        &lt;span&gt;}&lt;/span&gt;
&lt;span&gt;}&lt;/span&gt;&lt;/pre&gt;Here is a sample Apache httpd.conf file:&lt;br /&gt;
&lt;pre class=&quot;ini&quot;&gt;&amp;lt;VirtualHost www-origin.nixcraft.in&amp;gt;
 ServerAdmin webmaster@nixcraft.in
 DocumentRoot /home/httpd/www-origin.nixcraft.in
 ServerName files.nixcraft.in
 ServerAlias file.nixcraft.in
 ErrorLog /var/logs/httpd/cdn-error_log
 CustomLog /var/logs/httpd/cdn-access_log common
&amp;nbsp;
 # Files in this directory will be cached for &lt;span&gt;1&lt;/span&gt; week only.
 # After &lt;span&gt;1&lt;/span&gt; week, CDN server will check if the contents has been modified or not.
 # If not modified, Apache will send &lt;span&gt;304&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;&quot;Not Modified&quot;&lt;/span&gt; header
 &amp;lt;Directory &lt;span style=&quot;color: #993333;&quot;&gt;&quot;/userimages&quot;&lt;/span&gt;&amp;gt;
  Header set Cache-Control &lt;span style=&quot;color: #993333;&quot;&gt;&quot;max-age=604800, must-revalidate&quot;&lt;/span&gt;
 &amp;lt;/Directory&amp;gt;
&amp;nbsp;
 # Disable ETag as we are on cluster Apache server
 &amp;lt;Directory &lt;span style=&quot;color: #993333;&quot;&gt;&quot;/pdfs&quot;&lt;/span&gt;&amp;gt;
  Header unset ETag
  FileETag None
 &amp;lt;/Directory&amp;gt;
&amp;nbsp;
 # Do not cache
 &amp;lt;Directory &lt;span style=&quot;color: #993333;&quot;&gt;&quot;/patches&quot;&lt;/span&gt;&amp;gt;
  Header Set Cache-Control &lt;span style=&quot;color: #993333;&quot;&gt;&quot;max-age=0, no-store&quot;&lt;/span&gt;
 &amp;lt;/Directory&amp;gt;
&amp;lt;/VirtualHost&amp;gt;&lt;/pre&gt;&lt;h2&gt;Step # 4: Configure WordPress To Upload Files To CDN Server&lt;/h2&gt;&lt;ol&gt;&lt;li&gt;Visit your wordpress dashboard url (e.g., http://nixcraft.in/wp-admin/)&lt;/li&gt;
&lt;li&gt;Click on Settings &amp;gt; Miscellaneous Settings&lt;/li&gt;
&lt;li&gt;Update it as follows to point out to our configuration paths and CDN domains&lt;/li&gt;
&lt;/ol&gt;&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_6652&quot; style=&quot;width: 594px;&quot;&gt; &lt;a href=&quot;http://www.cyberciti.biz/tips/wordpress-cdn-content-delivery-network-configuration.html/wordpress-miscellaneous-settings&quot; rel=&quot;attachment wp-att-6652&quot;&gt;&lt;img alt=&quot;Fig.01: Wordrpess Miscellaneous Settings - Set CDN URLS&quot; class=&quot;size-full wp-image-6652&quot; height=&quot;335&quot; src=&quot;http://files.cyberciti.biz/uploads/tips/2010/04/wordpress-miscellaneous-settings.png&quot; title=&quot;Wordrpess CDN Settings Upload Images&quot; width=&quot;594&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;Fig.01: Wordrpess Miscellaneous Settings - Set CDN URLS&lt;/div&gt;&lt;/div&gt;All  your uploaded files are saved on your server at  /home/httpd/www-origin.nixcraft.in directory. Which is mapped to CDN via  origin pull method. In this example:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;A user requests for http://files.nixcraft.in/uploads/2010/04/test.png&lt;/li&gt;
&lt;li&gt;First pulled from http://www-origin.nixcraft.in/uploads/2010/04/test.png by your CDN server&lt;/li&gt;
&lt;li&gt;It is cached at CDN server for 60 days (or as per max age rule)&lt;/li&gt;
&lt;li&gt;Rest of all user gets image from the CDN server.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;Step # 5: Configure WordPress Theme To Serve CSS / JS From The CDN Server&lt;/h2&gt;First,  copy your .css, and .js files to /home/httpd/www-origin.nixcraft.in directory:&lt;br /&gt;
&lt;pre class=&quot;bash&quot;&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;mkdir&lt;/span&gt; -p /home/httpd/www-origin.nixcraft.&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;in&lt;/span&gt;/&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;{&lt;/span&gt;css,js&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;}&lt;/span&gt;
&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;cp&lt;/span&gt; -av /home/httpd/nixcraft.&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;in&lt;/span&gt;/wp-content/themes/mythemename/*.css /home/httpd/www-origin.nixcraft.&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;in&lt;/span&gt;/css
&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;cp&lt;/span&gt; -av /home/httpd/nixcraft.&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;in&lt;/span&gt;/wp-content/themes/mythemename/*.js /home/httpd/www-origin.nixcraft.&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;in&lt;/span&gt;/js&lt;/pre&gt;Finally,  edit your theme (header.php and footer.php) to point to CDN location  for stylesheet and/or .js files by visiting &quot;Manage Themes&quot; option from  the wordpress dashboard:&lt;br /&gt;
&lt;pre&gt;&amp;nbsp;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;http://files.nixcraft.in/css/style.css&quot; type=&quot;text/css&quot; media=&quot;screen, projection&quot; /&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;http://files.nixcraft.in/css/images.css&quot; type=&quot;text/css&quot; media=&quot;screen, projection&quot; /&amp;gt;
&amp;nbsp;&lt;/pre&gt;&lt;h2&gt;Results&lt;/h2&gt;The end result is pretty nice. Here are sample website load speed upgrades after using a CDN:&lt;br /&gt;
&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_6661&quot; style=&quot;width: 343px;&quot;&gt; &lt;a href=&quot;http://www.cyberciti.biz/tips/wordpress-cdn-content-delivery-network-configuration.html/alexa&quot; rel=&quot;attachment wp-att-6661&quot;&gt;&lt;img alt=&quot;Fig.02: Alexa Showing Website loading speed&quot; class=&quot;size-full wp-image-6661&quot; height=&quot;97&quot; src=&quot;http://files.cyberciti.biz/uploads/tips/2010/04/alexa.png&quot; title=&quot;Alexa Showing Website loading speed&quot; width=&quot;343&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;Fig.02: Alexa Showing Website loading speed&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_6662&quot; style=&quot;width: 323px;&quot;&gt; &lt;a href=&quot;http://www.cyberciti.biz/tips/wordpress-cdn-content-delivery-network-configuration.html/pingdom&quot; rel=&quot;attachment wp-att-6662&quot;&gt;&lt;img alt=&quot;Fig.03: Pingdom Tools Showing Website loading speed&quot; class=&quot;size-full wp-image-6662&quot; height=&quot;435&quot; src=&quot;http://files.cyberciti.biz/uploads/tips/2010/04/pingdom.png&quot; title=&quot;Pingdom Tools Showing Website loading speed&quot; width=&quot;323&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;wp-caption-text&quot;&gt;Fig.03: Pingdom Tools Showing Website loading speed&lt;/div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;See 6 Tools To Find Out Website Load Speed&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;How Do I Test Images And Other Media Files Are Cached Or Not By CDN?&lt;/h3&gt;Use curl to test HTTP headers (look for Etags, max-age and Expires headers):&lt;br /&gt;
&lt;code&gt;$ curl -I http://files.nixcraft.in/css/styles.css&lt;br /&gt;
$ curl -I http://files.nixcraft.in/uploades/2010/04/test.png&lt;/code&gt;&lt;br /&gt;
Sample outputs:&lt;br /&gt;
&lt;pre&gt;HTTP/1.1 200 OK
Content-Type: image/png
Accept-Ranges: bytes
&lt;span style=&quot;color: red;&quot;&gt;ETag: &quot;1482142335&quot;&lt;/span&gt;
Last-Modified: Fri, 02 Apr 2010 09:11:53 GMT
Content-Length: 33143
Server: lighttpd
&lt;span style=&quot;color: red;&quot;&gt;Cache-Control: max-age=2588785
Expires: Sun, 02 May 2010 09:13:50 GMT&lt;/span&gt;
Date: Fri, 02 Apr 2010 10:07:25 GMT
Connection: keep-alive
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/6569318989532354855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2011/12/howto-configure-wordpress-to-use.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/6569318989532354855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/6569318989532354855'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2011/12/howto-configure-wordpress-to-use.html' title='HowTo: Configure WordPress To Use A Content Delivery Network (CDN)'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-8595474023394802182</id><published>2011-11-23T18:51:00.000+08:00</published><updated>2011-11-23T18:51:39.945+08:00</updated><title type='text'>Getting Started with My.Blogs</title><content type='html'>&lt;h2 class=&quot;dtH1&quot;&gt;&lt;a href=&quot;&quot; name=&quot;myblogsgetstart_topic2&quot;&gt;&lt;/a&gt;Getting Started&lt;/h2&gt;To  get started using My.Blogs, download the sample code to your local  machine and extract the files associated with the sample to a directory  on your local machine. Follow these steps to start using My.Blogs to  work with weblog feeds programmatically.  &lt;br /&gt;
&lt;ol type=&quot;1&quot;&gt;&lt;li&gt;Start by opening the &quot;\My.Blogs VS Snippet and Add In&quot; from the code you extracted above.&lt;/li&gt;
&lt;li&gt;Double-click on &lt;b&gt;My.Blogs.vsi&lt;/b&gt; and accept all the default options. This will install a new Template to the &lt;b&gt;Add New Item&lt;/b&gt; dialog box called &quot;My.Blogs&quot;.  &lt;/li&gt;
&lt;li&gt;Open Visual Studio 2005 and select &lt;b&gt;File|New Project&lt;/b&gt;. Select &lt;b&gt;Visual Basic 2005&lt;/b&gt; as your language, &lt;b&gt;Windows&lt;/b&gt; for the Project Type, and &lt;b&gt;Windows Application&lt;/b&gt; as the Template.  &lt;/li&gt;
&lt;li&gt;Name your project &quot;UsingMyBlogs.&quot;&lt;/li&gt;
&lt;li&gt;In the Solution Explorer, right click on the &lt;b&gt;UsingMyBlog&lt;/b&gt; project and select &lt;b&gt;Add|New Item...&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;In the Templates List, scroll down until you get to &lt;b&gt;My Templates&lt;/b&gt; and select &lt;b&gt;My.Blogs&lt;/b&gt;. Click &lt;b&gt;Add&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;In Solution Explorer, notice that a file called MyBlogs.vb has been added to your project.&lt;/li&gt;
&lt;li&gt;In Solution Explorer, double-click on the &lt;b&gt;My Project&lt;/b&gt; folder and select the &lt;b&gt;References&lt;/b&gt;  tab. Note that you now have a reference to the MyBlogs.dll. This was  done for you by adding the My.Blogs template to your project.&lt;/li&gt;
&lt;li&gt;If  your reference was not made correctly, you&#39;ll need to set it up  manually. Save the project and copy the MyBlogs.dll to the debug/bin  folder and add a reference to MyBlogs.dll using the My Projects folder.&lt;/li&gt;
&lt;li&gt;Double-click on &lt;b&gt;Form1.vb&lt;/b&gt; in the Solution Explorer to open it in the form designer.&lt;/li&gt;
&lt;li&gt;Drag a &lt;b&gt;DataGridView&lt;/b&gt; onto Form1 and set the following properties: &lt;ol type=&quot;a&quot;&gt;&lt;li&gt;&lt;b&gt;Name = &quot;BlogEntries&quot;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AllowUserAddRows = False&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AllowUserDeleteRows = False&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ReadOnly = True&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SelectionMode = FullRowSelect&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Drag a button on the form under the BlogEntries &lt;b&gt;DataViewGrid&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Double-click the button to start writing code behind the &lt;b&gt;ClickEvent&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Type in the following code in the &lt;b&gt;Button1_Click&lt;/b&gt; event handler: &lt;pre class=&quot;code&quot;&gt;Dim MyFeed As MyBlogs.Feed

        MyFeed = My.Blogs.Read(&quot;http://blogs.msdn.com/vbteam/Rss.aspx&quot;)

        Me.BlogEntries.DataSource = MyFeed.Entries
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;That&#39;s all the code you need to read from a blog feed and populate the entries into a grid. The &lt;b&gt;Read&lt;/b&gt; method returns a &lt;b&gt;Feed&lt;/b&gt; object that represents the entries for a given RSS/ATOM/RDF feed at a given URL. The &lt;b&gt;Feed.Entries&lt;/b&gt; property returns a &lt;b&gt;BindingList(Of FeedEntry)&lt;/b&gt;, which allows you to bind the list directly controls like the &lt;b&gt;DataGridView&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Run the application. It should look like the following: &lt;div class=&quot;fig1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms364056.myblogsgetstart01%28l=en-US,v=VS.80%29.gif&quot;&gt;&lt;img alt=&quot;Click here for larger image&quot; border=&quot;0&quot; src=&quot;http://i.msdn.microsoft.com/dynimg/IC152377.gif&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;label&quot;&gt;&lt;b&gt;Figure 1. A simple Windows Forms Application using My.Blogs&lt;/b&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;If you look at the Title column and compare it to the blog entries at &lt;a href=&quot;http://blogs.msdn.com/vbteam/rss.aspx&quot;&gt;http://blogs.msdn.com/vbteam/rss.aspx&lt;/a&gt;, you&#39;ll note that you have now loaded a live RSS feed into your sample application with three lines of code!&lt;/li&gt;
&lt;li&gt;Close the application and add another button to the form. Double-click that button and add the following code to &lt;b&gt;Button2_Click&lt;/b&gt;: &lt;pre class=&quot;code&quot;&gt;myFeed = My.Blogs.Read(&quot;http://blogs.msdn.com/vbteam/Rss.aspx&quot;, False, _
        New Date(2005, 7, 1))

    Me.EntriesGridView.DataSource = myFeed.Entries
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;You can see that this overload of the &lt;b&gt;Read&lt;/b&gt;  method takes two arguments. The first is a Boolean for whether you want  to download comments for each feed. The second is a date. This allows  you to only retrieve entries on or after a certain date. This is useful  if you are creating an application that only reads feed entries since  the last time you performed a &lt;b&gt;Read&lt;/b&gt;. Run the application and click on &lt;b&gt;Button2&lt;/b&gt;. Your application should look like this: &lt;div class=&quot;fig1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms364056.myblogsgetstart02%28l=en-US,v=VS.80%29.gif&quot;&gt;&lt;img alt=&quot;Click here for larger image&quot; border=&quot;0&quot; src=&quot;http://i.msdn.microsoft.com/dynimg/IC120258.gif&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;label&quot;&gt;&lt;b&gt;Figure 2. A Simple Windows Forms Application Reading Feeds from A Date&lt;/b&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Only entries dated on or after 7/1/2005 were returned. Close the applications.&lt;/li&gt;
&lt;li&gt;Drop another button onto the form and add the following code to the &lt;b&gt;Button3_Click&lt;/b&gt; event handler. &lt;pre class=&quot;code&quot;&gt;Private MyFeed As MyBlogs.Feed

    Private Sub Button3_Click(ByVal sender As System.Object, 
ByVal e As System.EventArgs) Handles Button3.Click
        MyFeed = My.Blogs.Read(&quot;http://blogs.msdn.com/vbteam/Rss.aspx&quot;, True)

        Me.BlogEntries.DataSource = MyFeed.Entries
    End Sub
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Note the promotion of MyFeeds to a module lever variable. Also note that we&#39;re using yet another overload of &lt;b&gt;My.Blogs.Read&lt;/b&gt; that accepts the feed URL as well as a Boolean for retrieving feed comments. We&#39;ve set it to &lt;b&gt;True&lt;/b&gt; in order to retrieve comments.&lt;/li&gt;
&lt;li&gt;Add another &lt;b&gt;DataGridView&lt;/b&gt; to Form1 and place it under the buttons. Set the following properties: &lt;ol type=&quot;a&quot;&gt;&lt;li&gt;&lt;b&gt;Name = &quot;BlogEntryComments&quot;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AllowUserAddRows = False&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AllowUserDeleteRows = False&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ReadOnly = True&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SelectionMode = FullRowSelect&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Right-click on &lt;b&gt;Form1&lt;/b&gt; and select &lt;b&gt;View Code&lt;/b&gt;. Add a new event handler for the &lt;b&gt;BlogEntries&lt;/b&gt; control by selecting &lt;b&gt;Blog_Entries&lt;/b&gt; in the &lt;b&gt;Class&lt;/b&gt; drop down and &lt;b&gt;SelectionChanged&lt;/b&gt; in the &lt;b&gt;method&lt;/b&gt; drop down. You should have a new event handler called &lt;b&gt;BlogEntries_SelectionChanged&lt;/b&gt;. Add the following code: &lt;pre class=&quot;code&quot;&gt;Dim SelectedEntry As MyBlogs.FeedEntry = 
MyFeed.Entries(BlogEntries.CurrentRow.Index)

        If SelectedEntry.Comments IsNot Nothing Then
            Me.BlogEntryComments.DataSource = SelectedEntry.Comments.Entries
        End If
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Run the application. It should look like the figure below. &lt;div class=&quot;fig1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms364056.myblogsgetstart03%28l=en-US,v=VS.80%29.gif&quot;&gt;&lt;img alt=&quot;Click here for larger image&quot; border=&quot;0&quot; src=&quot;http://i.msdn.microsoft.com/dynimg/IC116131.gif&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;label&quot;&gt;&lt;b&gt;Figure 3: Reading Feeds and Their Comments&lt;/b&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;When  you select an entry in the entry grid that has comments associated with  it, the comments show up in the BlogEntryComments grid. Your  application is now reading blog entries and their comments from a RSS  feed. Close the application.&lt;/li&gt;
&lt;li&gt;MyBlog supports posting to blogs as well. In order to post to a blog you&#39;ll need the following information: &lt;ol type=&quot;a&quot;&gt;&lt;li&gt;The blog URL.&lt;/li&gt;
&lt;li&gt;The ID you use to sign in to that blog.&lt;/li&gt;
&lt;li&gt;The password you use to sign in to that blog.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Add another button to the form and double-click on the button to create the &lt;b&gt;Button4_Click&lt;/b&gt; event handler. Add the following code: &lt;pre class=&quot;code&quot;&gt;My.Blogs.PublishEntry(_
        MyBlogs.PublishFormat.CommunityServerViaMetaWebLogAPI, _
    &quot;http://myblogserver/myblogid&quot;, &quot;myblogid&quot;, &quot;password&quot;, _
        &quot;Testing via UsingMyBlogs&quot;, &quot;This is the entry posted &quot; + _
        &quot;from trying out MyBlogs!&quot;)

    MyFeed = My.Blogs.Read(&quot;http://myblogserver/myblogid/rss.aspx&quot;, True)

    Me.BlogEntries.DataSource = MyFeed.Entries
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Run the application and click on Button4. When the BlogEntries &lt;b&gt;DataGridView&lt;/b&gt;  is populated, you&#39;ll see the blog entry you posted using My.Blogs. It  may take a few minutes for the new post to show up. The first argument  you pass to &lt;b&gt;PublishEntry&lt;/b&gt; is a value from the &lt;b&gt;PublishFormat&lt;/b&gt; Enum, telling My.Blogs what publish format you&#39;re going to use to post the entry. More on that later. Close the application.&lt;/li&gt;
&lt;li&gt;MyBlogs  supports reading and writing OPML lists of blog feeds. OPML is an XML  schema for managing outlines, such as groups of blog feed addresses. A  sample OPML file, appropriately named sample.opml, is supplied in the  root of the sample code. Copy it to the \bin\debug directory of  UsingBlogs.&lt;/li&gt;
&lt;li&gt;Next, drop another button onto Form1 and add an event handler by double-clicking on the button.&lt;/li&gt;
&lt;li&gt;Add the following code to the &lt;b&gt;Button5_Click&lt;/b&gt; event handler. &lt;pre class=&quot;code&quot;&gt;Dim SampleBlogs As Generic.List(Of MyBlogs.BlogGroup) = My.Blogs.ReadOpml( _
        My.Computer.FileSystem.CurrentDirectory + &quot;\&quot; + &quot;sample.opml&quot;)

    Dim SampleBlogInfo As MyBlogs.BlogInfo = SampleBlogs(0).Item(0)

    myFeed = My.Blogs.Read(SampleBlogInfo.FeedUrl)

    Me.EntriesGridView.DataSource = myFeed.Entries
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;This code deserves some explanation. OPML files allow  you to group information about blog feeds into groups. My.Blogs reflects  that grouping by returning a &lt;b&gt;List(Of MyBlogs.BlogGroup)&lt;/b&gt; that you can use to get individual instances of the &lt;b&gt;MyBlogs.BlogInfo&lt;/b&gt;  class, which provide information about an individual feed (such as its  URL). The code above reads the OPML file, uses the first BlogInfo to get  a feed URL and then loads the feed into the &lt;b&gt;EntriesGridView&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Run the application. You will see the feed entries for the first entry of the OPML file in the &lt;b&gt;DataGridView&lt;/b&gt;. Close the application.&lt;/li&gt;
&lt;li&gt;Finally,  My Blogs allows you to write OPML files as well. Drop another button  onto Form1 and double-click on the form to add an event handler. Add the  following code to &lt;b&gt;Button6_Click&lt;/b&gt;. &lt;pre class=&quot;code&quot;&gt;Dim SampleBlogs As New Generic.List(Of MyBlogs.BlogGroup)

        Dim MyBlogGroup As New MyBlogs.BlogGroup
        Dim MyBlogInfo As New MyBlogs.BlogInfo()

        MyBlogInfo.FeedUrl = &quot;http://blogs.msdn.com/vbteam/Rss.aspx&quot;
        MyBlogInfo.Title = &quot;VB Team Blog&quot;
        MyBlogInfo.Url = &quot;http://blogs.msdn.com/vbteam&quot;

        MyBlogGroup.Add(MyBlogInfo)
        SampleBlogs.Add(MyBlogGroup)

        My.Blogs.WriteOpml(SampleBlogs, My.Computer.FileSystem.CurrentDirectory + &quot;\&quot; + &quot;WriteSample.opml&quot;)
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Just like the last example, we use a &lt;b&gt;MyBlogs.BlogInfo&lt;/b&gt; class to store the info about a feed. We then add that &lt;b&gt;BlogInfo&lt;/b&gt; to a &lt;b&gt;BlogGroup&lt;/b&gt; and use the &lt;b&gt;My.Blogs.WriteOpml&lt;/b&gt; method to write the OPML file to disk. Open the OPML file from the \bin\debug directory to get an idea of what OPML looks like.&lt;/li&gt;
&lt;/ol&gt;Congratulations!  In only a few minutes, and with only a few lines of code, you&#39;ve used  My.Blogs to write code to perform common blog feed operations in code.&lt;br /&gt;
&lt;h2 class=&quot;dtH1&quot;&gt;&lt;a href=&quot;&quot; name=&quot;myblogsgetstart_topic3&quot;&gt;&lt;/a&gt;Using My.Blogs Windows Form Walkthrough&lt;/h2&gt;Before  we take a look at how My.Blogs works under the hood, let&#39;s take a look  at what an application based on My.Blogs and see what it can do. Follow  these steps to get started using an application based on My.Blogs.&lt;br /&gt;
&lt;h3 class=&quot;dtH1&quot;&gt;Reading Feeds&lt;/h3&gt;&lt;ol type=&quot;1&quot;&gt;&lt;li&gt;Under the directory where the sample code was unzipped, open \My.Blogs Windows Sample\MyReader.sln.&lt;/li&gt;
&lt;li&gt;Run the application.&lt;/li&gt;
&lt;li&gt;MyReader  is based on a communication application starter kit included with this  sample, \Misc. Sample Files\Communication Application.vsi, which allows  you to quickly create applications with an Office Outlook 2003 look and  feel.&lt;/li&gt;
&lt;li&gt;Start using MyReader by subscribing to some blog feeds.  You can do this through an OPML file or by entering a URL for an RSS,  ATOM, or RDF feed. &lt;ol type=&quot;a&quot;&gt;&lt;li&gt;&lt;b&gt;OPML&lt;/b&gt;—You can load feeds from another reader by exporting an OPML file of feeds and importing it into MyReader. For example, select &lt;b&gt;File/Import Subscriptions&lt;/b&gt; and select the path of the sample.opml file supplied in the root of the sample code directory.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;By URL&lt;/b&gt;—Select &lt;b&gt;File/New Feed&lt;/b&gt; and enter the URL of a valid RSS, ATOM, or RDF feed (such as &lt;a href=&quot;http://blogs.msdn.com/cmayo/rss.aspx&quot;&gt;http://blogs.msdn.com/vbteam/rss.aspx&lt;/a&gt;).&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;At  this point, you should see your feed(s) in the Feeds list box. Select a  feed by clicking on it in the Feeds list on the left side of the UI and  then select an entry in the right side of the UI. You will see the  contents of the entry in the bottom half of the entry pane.&lt;/li&gt;
&lt;li&gt;You can also group your feeds to make easier to manage. Select &lt;b&gt;File/New/Group...&lt;/b&gt; and give the group a name. To add a feed to the group, select the group and add the feed as you did above.&lt;/li&gt;
&lt;/ol&gt;&lt;h3 class=&quot;dtH1&quot;&gt;Posting to Blogs&lt;/h3&gt;&lt;ol type=&quot;1&quot;&gt;&lt;li&gt;To  post entries to your blog, you need to provide some key information to  be used by the My.Blogs code running in MyReader. Select the &lt;b&gt;Blog Info...&lt;/b&gt; toolbar button to supply the necessary information. Enter the following information based on your blog: &lt;ol type=&quot;a&quot;&gt;&lt;li&gt;&lt;b&gt;User ID&lt;/b&gt;—This is the user ID that you use to log into your blog server.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Password&lt;/b&gt;—The password you use to log into your blog server.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Publish Protocol&lt;/b&gt;—How you&#39;d like to post to your blog server. &lt;ul&gt;&lt;li&gt;Community Server using a Blog URL: If you are using Community Server (&lt;a href=&quot;http://www.telligent.com/&quot;&gt;http://www.telligent.com/&lt;/a&gt;), you can just enter your blog URL (for example &lt;a href=&quot;http://blogs.msdn.com/vbteam&quot;&gt;http://blogs.msdn.com/vbteam&lt;/a&gt;) and My.Blogs will calculate the service endpoint for you. Select this option in order to post using that method.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Metablog API through a Service URL&lt;/b&gt;—If  you are using a server other than Community Server that supports the  MetaBlog API, enter the Metablog API service URL here. For example, &lt;a href=&quot;http://blogs.msdn.com/metablogapi.aspx&quot;&gt;http://blogs.msdn.com/metablogapi.aspx&lt;/a&gt;. Select this option in order to post by means of this method. &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Blog URL/Service URL&lt;/b&gt;—The URL that corresponds to the selection you made above.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Blog ID&lt;/b&gt;—For  the Metablog API selection, you need to supply the blog ID. Most often,  it&#39;s the directory name of your blog. For example, if your blog is  http://blogs.msdn.com/vbteam, your Blog ID would be &lt;b&gt;vbteam&lt;/b&gt;.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;After providing information about your blog, you&#39;re ready to post an entry. Click the &lt;b&gt;Write to Blog&lt;/b&gt;  button. The reading pane changes into a blog entry pane. Enter the  title of the entry and the content of the entry and click the &lt;b&gt;Publish&lt;/b&gt;  button. If you entered your blog information correctly, you will be  able to go to the blog (or the feed if you&#39;ve added it to MyReader) and  see the post.&lt;/li&gt;
&lt;/ol&gt;There are some other great samples included  with MyBlogs. Take a deeper look at the MyReader.sln in order to see how  to consume blog feed functionality in a Windows Forms application. In  the &quot;My.Blogs Web Sample&quot; folder you&#39;ll see a sample Web site that uses  My.Blogs to provide blog reading functionality to an ASP.NET 2.0  application. In the &quot;My.Blogs Office Outlook Add-In&quot; folder there is an  example of using My.Blogs in order to provide blog functionality within  Outlook 2003 using Microsoft Visual Studio 2005 Tools for the Microsoft  Office System. One thing that you&#39;ll notice is that the design of  My.Blogs allows each application, regardless of whether the application  is a Windows Forms application, Web application, or Outlook Add-In, to  provide blog feed access with some simple calls to My.Blogs.  &lt;br /&gt;
&lt;h2 class=&quot;dtH1&quot;&gt;&lt;a href=&quot;&quot; name=&quot;myblogsgetstart_topic4&quot;&gt;&lt;/a&gt;Understading My.Blogs&lt;/h2&gt;In order to understand how My.Blogs works, you really need to look at three things; how My.Blogs extends the &lt;b&gt;My&lt;/b&gt; feature, how the &lt;b&gt;Blogs&lt;/b&gt; class provides the implementation of My.Blogs, and how publishing and reading are accomplished.&lt;br /&gt;
&lt;h3 class=&quot;dtH1&quot;&gt;Adding Blogs to the My Feature.&lt;/h3&gt;If you&#39;re new to Visual Basic 2005, you&#39;re probably new to the &lt;b&gt;My&lt;/b&gt; feature. &lt;b&gt;My&lt;/b&gt;  provides quick access to common development tasks and common  information through an easy-to-use object hierarchy. The great thing  about &lt;b&gt;My&lt;/b&gt; is that you can extend it using classes of your own design.&lt;br /&gt;
To access the &lt;b&gt;Blogs&lt;/b&gt; class (which provides the actual implementation) through the &lt;b&gt;My&lt;/b&gt;  feature, you need to add a key piece of code to the consuming  application. In the previous sample, that key piece of code was provided  in the MyBlogs.vb file when we added the MyBlogs template to the  project.&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;Namespace My
    
    &amp;lt;Global.Microsoft.VisualBasic.HideModuleName()&amp;gt; _
    Module MyBlogs
        
        Private _blogs As New ThreadSafeObjectProvider(Of Global.MyBlogs.Blogs)

        Public ReadOnly Property Blogs() As Global.MyBlogs.Blogs
            Get
                Return _blogs.GetInstance()
            End Get
        End Property

    End Module

End Namespace
&lt;/pre&gt;This code is pretty straightforward. Extending &lt;b&gt;My&lt;/b&gt; is mainly a matter of adding a property to the &lt;b&gt;My&lt;/b&gt; namespace. That property returns an instance of the &lt;b&gt;Blogs&lt;/b&gt; class wrapped in a &lt;b&gt;ThreadSafeObjectProvider&lt;/b&gt;,  which provides a thread safe instance of Blogs to each request. See the  article &quot;Simplify Common Tasks by Customizing the My Namespace&quot; for  more details (a link to the article is provided).&lt;br /&gt;
&lt;h3 class=&quot;dtH1&quot;&gt;The Blogs Class&lt;/h3&gt;Let&#39;s take a look at the &lt;b&gt;Blogs&lt;/b&gt;  class to see the actual implementation of the blog posting and feed  reading functionality provided in My.Blogs. Open the &quot;My.Blogs.sln&quot;  solution in the &quot;My.Blogs DLL Source Code&quot; folder. Take a look at the  class diagram ClassDiagram1.cd and look at the &lt;b&gt;Blogs&lt;/b&gt; class.  &lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms364056.myblogsgetstart04%28l=en-US,v=VS.80%29.gif&quot;&gt;&lt;img alt=&quot;Click here for larger image&quot; border=&quot;0&quot; src=&quot;http://i.msdn.microsoft.com/dynimg/IC22985.gif&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;label&quot;&gt;&lt;b&gt;Figure 4. The Blogs Class Diagram&lt;/b&gt;&lt;/div&gt;As  you&#39;d expect, the implementation mimics what is provided by My.Blogs.  If you look at the methods themselves in code, you&#39;ll notice one thing  of interest. The &lt;b&gt;Blogs&lt;/b&gt; class uses a Factory-like pattern in order to provide the function of reading feeds using varied feed formats.&lt;br /&gt;
Let&#39;s take a look at the &lt;b&gt;Read&lt;/b&gt; method. We&#39;ll examine the simplest form of the &lt;b&gt;Read&lt;/b&gt; method, since all the other overloads follow the same pattern. Open the MyBlogs.vb file in the solution to see the &lt;b&gt;Blogs&lt;/b&gt; class. The implementation of &lt;b&gt;Read&lt;/b&gt; is here:&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;Public Function Read(ByVal Url As String) As Feed
        Return MyBlogs.Feed.Read(Url, False)
    End Function
&lt;/pre&gt;If you follow this to the &lt;b&gt;Feed&lt;/b&gt; class in Feed.vb, you&#39;ll note that the &lt;b&gt;Feed&lt;/b&gt; class gets the feed XML from the URL passed to &lt;b&gt;Blogs.Read()&lt;/b&gt; and returns an instance of a class that represents the specific feed format.&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;Public Shared Function Read(ByVal url As String, _
        ByVal loadComments As Boolean, ByVal subscriptionDate As Date) As Feed

        Dim format As FeedFormat
        Dim feed As Feed = Nothing
        Dim xml As XmlReader = Nothing
        Dim client As New System.Net.WebClient()

        Dim stream As IO.Stream = Nothing

        Try
            stream = client.OpenRead(url)
            xml = XmlReader.Create(stream)
            format = GetFeedFormat(xml)

            Select Case format
                Case FeedFormat.Atom
                    feed = New Atom.AtomFeed
                    feed.Load(xml)
                Case FeedFormat.RDF
                    feed = New Rdf.RdfFeed()
                    feed.Load(xml)
                Case FeedFormat.RSS
                    feed = New Rss.RssFeed()
                    feed.Load(xml, subscriptionDate)
            End Select
        Catch e As Exception
            Throw e
        Finally
            If xml IsNot Nothing Then
                xml.Close()
            End If
            If stream IsNot Nothing Then
                stream.Close()
            End If
        End Try

        If feed IsNot Nothing Then
            feed.ShouldDownloadComments = loadComments
            feed.LoadComments()
            feed.FeedUrl = url
        End If

        Return feed

    End Function
&lt;/pre&gt;You can see the relationship between &lt;b&gt;Feed&lt;/b&gt; and the different subclasses of &lt;b&gt;Feed&lt;/b&gt; that provide specific feed implementations in the following diagram.&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms364056.myblogsgetstart05%28l=en-US,v=VS.80%29.gif&quot;&gt;&lt;img alt=&quot;Click here for larger image&quot; border=&quot;0&quot; src=&quot;http://i.msdn.microsoft.com/dynimg/IC128431.gif&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;label&quot;&gt;&lt;b&gt;Figure 5. Feeds and FeedEntry Diagram&lt;/b&gt;&lt;/div&gt;&lt;b&gt;FeedEntry&lt;/b&gt; provides the implementation of individual entries in a feed and works the same way.&lt;br /&gt;
Extending &lt;b&gt;Read&lt;/b&gt; to support more formats is just a matter of adding a value to the &lt;b&gt;FeedFormat&lt;/b&gt; Enum, providing a new subclass of &lt;b&gt;Feed&lt;/b&gt; and &lt;b&gt;FeedEntry&lt;/b&gt;, as well as providing the specific implementation of that format.&lt;br /&gt;
&lt;b&gt;Publish&lt;/b&gt; works in the same way. Here is the code from the &lt;b&gt;Blogs&lt;/b&gt; class that provides the basic &lt;b&gt;Publish&lt;/b&gt; implementation. When calling &lt;b&gt;PublishEntry&lt;/b&gt;, you need to pass a value from the &lt;b&gt;PublishEntry&lt;/b&gt; Enum so the right publish implementation class is created.&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;Public Sub PublishEntry(ByVal Format As PublishFormat, _
        ByVal BlogURL As String, ByVal UserName As String, _
        ByVal Password As String, ByVal Title As String, _
        ByVal Description As String)

        PublishProvider.PublishEntry(Format, BlogURL, UserName, _
            Password, Title, Description, True)
    End Sub
&lt;/pre&gt;Again, the &lt;b&gt;PublishProvider&lt;/b&gt; class provides the actual implementation by using the &lt;b&gt;PublishFormat&lt;/b&gt; Enum to dictate what class is actually created to do the actual publishing.&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;Public Shared Sub PublishEntry(ByVal format As PublishFormat, ByVal 
Address As String, ByVal UserName As String, ByVal Password As String, 
ByVal Title As String, ByVal Description As String, ByVal IsNewEntry As Boolean)
        Dim provider As PublishProvider = PublishProvider.Create(format)
        provider.PublishEntry(Address, UserName, Password, Title, Description)
    End Sub


    Friend Shared Function Create(ByVal format As PublishFormat) As PublishProvider
        &#39;Create http request and send it to server
        Dim provider As PublishProvider = Nothing
        Select Case format
            Case PublishFormat.Unknown
                Throw New System.Exception(&quot;PublishFormat.Unknown&quot;)
            Case PublishFormat.MetaWebLogAPI
                provider = New MetaWebLogPublishProvider()
            Case PublishFormat.CommunityServerViaMetaWebLogAPI
                provider = New MetaWebLogPublishProvider()
            Case Else
                Throw New System.Exception()
        End Select
        Return provider
    End Function
&lt;/pre&gt;If you look at ClassDiagram1.cd again, you&#39;ll see that &lt;b&gt;PublishProvider&lt;/b&gt; follows the same pattern as the &lt;b&gt;Feed&lt;/b&gt; class.&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms364056.myblogsgetstart06%28l=en-US,v=VS.80%29.gif&quot;&gt;&lt;img alt=&quot;Click here for larger image&quot; border=&quot;0&quot; src=&quot;http://i.msdn.microsoft.com/dynimg/IC163880.gif&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;label&quot;&gt;&lt;b&gt;Figure 6. Publish Provider Diagram&lt;/b&gt;&lt;/div&gt;Currently, only the MetaWeblog API is supported for Telligent&#39;s Community Server using the &lt;b&gt;MetaWebLogPublishProvider&lt;/b&gt; subclass, but you could easily extend the &lt;b&gt;PublishProvider&lt;/b&gt; to support other APIs or other servers by providing a new subclass with a new implementation.&lt;br /&gt;
&lt;h2 class=&quot;dtH1&quot;&gt;&lt;a href=&quot;&quot; name=&quot;myblogsgetstart_topic5&quot;&gt;&lt;/a&gt;Conclusion&lt;/h2&gt;The My.Blogs sample is great from a couple of points of view. First, it provides a great example of how you can extend &lt;b&gt;My&lt;/b&gt;  to provide a very clean and intuitive way of accessing common  functionality throughout your code. Second, it&#39;s a great sample  application that you can easily extend in order to build a full featured  blog utility, whether you want to work with blogs on your desktop, from  a browser or even inside Outlook. Enjoy!</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/8595474023394802182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2011/11/getting-started-with-myblogs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/8595474023394802182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/8595474023394802182'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2011/11/getting-started-with-myblogs.html' title='Getting Started with My.Blogs'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-8284620970005438644</id><published>2011-10-31T16:53:00.000+08:00</published><updated>2011-10-31T16:53:14.322+08:00</updated><title type='text'>Mass ASP.Net SQL Injection Infects Thousands Of Websites</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmIWBLcWXLPHIvI8YXBUIOzYzWj56OpqDksEe2CiJbocuZn7YXXczQkt1TZxzSyF2K7NJZXVNhqLNs7-E2TwaH6CqSEjJv65Hr0vRh6TKqL2jswdYeq4zpEoTvK8DAjXT9xCGwryD0IYE/s1600/sqlinjection.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmIWBLcWXLPHIvI8YXBUIOzYzWj56OpqDksEe2CiJbocuZn7YXXczQkt1TZxzSyF2K7NJZXVNhqLNs7-E2TwaH6CqSEjJv65Hr0vRh6TKqL2jswdYeq4zpEoTvK8DAjXT9xCGwryD0IYE/s1600/sqlinjection.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Hackers  have successfully infected about 180,000 websites based on Microsoft&#39;s  ASP.Net platform with malware from jjghui.com/urchin.js. (SQL injection)  which is similar to Lizamoon mass infection that spread terror among  the masses a few months ago.&lt;br /&gt;
&lt;br /&gt;
The attack, that started on the 9th of October, has been successful in  affecting almost 1.5k sites, which have now been blacklisted, and about   80k+ pages on Google index have a JavaScript malware pointing to it,  according to Google.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;&quot; name=&quot;more&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_H7niDRrFCuhgn3vVyVG8o7dKpmTGWnlvHQlsHdCtKIlFwIj48Bohc4N_wwFUzPD8X944U5b_A83clEFRQrUJ457DZ2kxb4Z9dbQ7ezlX8f6abYbfZbr5tHIKVyDEhJZdQeud1X6G-q4/s1600/1.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;458&quot; id=&quot;BLOGGER_PHOTO_ID_5666218409332811650&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_H7niDRrFCuhgn3vVyVG8o7dKpmTGWnlvHQlsHdCtKIlFwIj48Bohc4N_wwFUzPD8X944U5b_A83clEFRQrUJ457DZ2kxb4Z9dbQ7ezlX8f6abYbfZbr5tHIKVyDEhJZdQeud1X6G-q4/s640/1.png&quot; style=&quot;display: block; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center;&quot; width=&quot;577&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
The visitors of six particular languages are highly vulnerable to the attack--&lt;b&gt;English, German, French, Italian, Polish, and Breton&lt;/b&gt;, seen from the following deobfuscated script:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7XkN0r-orhnmbemKudzzPuA9TKx3STvIe8YtlIl28SNnEha39qiCp1nS6afrc0Cqhjz8SBN0Zlmk2aO8gEUsM8f1aL20cX3AhOr6aXemUMAiri8IDEYBQ0ysjRw35nqlvliVPtU1XwdM/s1600/2.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;420&quot; id=&quot;BLOGGER_PHOTO_ID_5666218586267459282&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7XkN0r-orhnmbemKudzzPuA9TKx3STvIe8YtlIl28SNnEha39qiCp1nS6afrc0Cqhjz8SBN0Zlmk2aO8gEUsM8f1aL20cX3AhOr6aXemUMAiri8IDEYBQ0ysjRw35nqlvliVPtU1XwdM/s640/2.png&quot; style=&quot;display: block; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center;&quot; width=&quot;577&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
This causes the browser to load an iframe with one of two remote sites:&lt;br /&gt;
&lt;b&gt;www3.strongdefenseiz.in&lt;/b&gt; and &lt;b&gt;www2.safetosecurity.rr.nu&lt;/b&gt;. From there, the iframe plants  malware on the visitor&#39;s PC via a number of browser drive-by exploits.&lt;br /&gt;
&lt;br /&gt;
This exploit will load even if the visitor doesn&#39;t open a file or clicks  on a link, which makes it perfect as the &quot;affectee&quot; remains unaware of  the attack. The attackers are, however, using exploits that have already  been discovered with the concerned patches available. Hence, the target  can only be achieved if the visitor is using an outdated, unpatched  browser without the latest version of Adobe PDF or Adobe Flash or Java.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;fullpost&quot;&gt;Currently, only six out of 43 can detect this malware. &lt;/span&gt;These are AntiVir, ByteHero, Fortinet, Jiangmin, McAfee and McAfee-GW-Edition.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWWJgm0H1kXPtVU1rDLp1oq7eRwEYiWb7LudgAIjxWcxW4Cio5m0bKEjK7gslZgnjsQBFLe6bCvgs7feRIjEPU2wNSeoZ4FzSh01SZ8CDeEkQelABxHBBgd5WVvwpOyhT_akp6gFQL9ZQ/s1600/3.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5666218813656501458&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWWJgm0H1kXPtVU1rDLp1oq7eRwEYiWb7LudgAIjxWcxW4Cio5m0bKEjK7gslZgnjsQBFLe6bCvgs7feRIjEPU2wNSeoZ4FzSh01SZ8CDeEkQelABxHBBgd5WVvwpOyhT_akp6gFQL9ZQ/s320/3.png&quot; style=&quot;display: block; height: 242px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 320px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
What is interesting is that the registration information for this domain   is the same as the one used on the earlier Lizamoon domains:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Technical Contact:&lt;br /&gt;
James Northone jamesnorthone@hotmailbox.com&lt;br /&gt;
+1.5168222749 fax: +1.5168222749&lt;br /&gt;
128 Lynn Court&lt;br /&gt;
Plainview NY 11803&lt;br /&gt;
us&lt;/blockquote&gt;&lt;br /&gt;
&lt;span class=&quot;fullpost&quot;&gt;jjghui.com resolves to IP 146.185.248.3 (AS3999),   which is in Russia. www3.strongdefenseiz.in resolves to 75.102.21.121   (AS36352), which is in the US and hosted by HostForWeb.com.   www2.safetosecurity.rr.nu resolves to IP 67.208.74.71 (AS33597), which   is in the US and hosted by InfoRelayOnlineSystems.&lt;br /&gt;
&lt;br /&gt;
Which leads us to think that this may be the work of the infamous &quot;&lt;/span&gt;Lizamoon mass infection&quot; attackers.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;fullpost&quot;&gt;1. ASP and ASP.NET websites are injected with the following script (text is here):&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpcyLTe93vYJZH3Wifq0KtJFlsCYByT1Ri3fWTUPIUEFqOsXWDMMibP0gi9jjh2gQpjCwpBotSrW1n0yFBSxBBtoMcZ0lvv5ohl9Y6C98hijVuHmsZezk_M90sZJlopGYFMp5Iow27A_w/s1600/4.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5666219291789528498&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpcyLTe93vYJZH3Wifq0KtJFlsCYByT1Ri3fWTUPIUEFqOsXWDMMibP0gi9jjh2gQpjCwpBotSrW1n0yFBSxBBtoMcZ0lvv5ohl9Y6C98hijVuHmsZezk_M90sZJlopGYFMp5Iow27A_w/s1600/4.png&quot; style=&quot;display: block; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center;&quot; /&gt;&lt;/a&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;2. Contents of urchin.js is as seen below&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_IVPy2kpmG12hU0fRrYntjbW26vjF5p34jn6VTbOcSSHbId05iwj7pTr1ANIuwLweyNE2GtqTnXlWzSNv-ERRFA9pNdNFNsVGZyDcsyL0p0xNTRLeiKuaXlDfLtsTqll0VxKOW6DvyeE/s1600/5.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;186&quot; id=&quot;BLOGGER_PHOTO_ID_5666219440627794866&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_IVPy2kpmG12hU0fRrYntjbW26vjF5p34jn6VTbOcSSHbId05iwj7pTr1ANIuwLweyNE2GtqTnXlWzSNv-ERRFA9pNdNFNsVGZyDcsyL0p0xNTRLeiKuaXlDfLtsTqll0VxKOW6DvyeE/s640/5.png&quot; style=&quot;display: block; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center;&quot; width=&quot;577&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;3. The above script decodes to the following:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZxh62SsWGsDEmuMMF68P55EgEGFOd03EwMbqdrR1m8aaQ35yIppf_j5JKyfN9g25Xx3UUvL4EKPgwq0fw1wQc-nM29WiFpGX48wSpRk45LOtJChrCM6pvtDSfDx9_sbTTczxNHzrPCLU/s1600/6.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;420&quot; id=&quot;BLOGGER_PHOTO_ID_5666219570759603554&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZxh62SsWGsDEmuMMF68P55EgEGFOd03EwMbqdrR1m8aaQ35yIppf_j5JKyfN9g25Xx3UUvL4EKPgwq0fw1wQc-nM29WiFpGX48wSpRk45LOtJChrCM6pvtDSfDx9_sbTTczxNHzrPCLU/s640/6.png&quot; style=&quot;display: block; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center;&quot; width=&quot;577&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/8284620970005438644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2011/10/mass-aspnet-sql-injection-infects.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/8284620970005438644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/8284620970005438644'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2011/10/mass-aspnet-sql-injection-infects.html' title='Mass ASP.Net SQL Injection Infects Thousands Of Websites'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmIWBLcWXLPHIvI8YXBUIOzYzWj56OpqDksEe2CiJbocuZn7YXXczQkt1TZxzSyF2K7NJZXVNhqLNs7-E2TwaH6CqSEjJv65Hr0vRh6TKqL2jswdYeq4zpEoTvK8DAjXT9xCGwryD0IYE/s72-c/sqlinjection.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-1153492537748701693</id><published>2011-10-13T16:31:00.002+08:00</published><updated>2011-10-13T16:35:03.069+08:00</updated><title type='text'>How to get IP address of another computer remotely</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Hello  friends, today i will explain you how to get IP address of any computer  remotely. Using some very basic tricks we can find the IP address of  any remote computer and then you can start your further hacking into the  remote system like port scanning and finding vulnerabilities to enter  in to the system and hack it. There are several methods to get an IP  address of the victim but i will share few and specially the best one&#39;s  that can tell you IP address in just few clicks and also all are free  methods and special thing is about it is all are manual methods that  means you did not require any tool.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-bottom: 0.5em; margin-left: auto; margin-right: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfPSk5OCAeOSxPUq7w1GsMV-ke_grx3XbaoSyCFWfPSUih6qhPdTfi9RQPGtYaASxTKs3EDRcTHvNacE5uTtFt5DhR5wPzZqFsHML3vdfwLGjh20FAsrdZkG_PWiStV7NVFq9adG1MF78X/s1600/get-ip-address.jpeg&quot; style=&quot;color: black; margin-left: auto; margin-right: auto; outline-color: initial; outline-style: none; outline-width: initial; text-decoration: underline;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;img alt=&quot;how to find ip address of another computer remotely&quot; border=&quot;0&quot; height=&quot;235&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfPSk5OCAeOSxPUq7w1GsMV-ke_grx3XbaoSyCFWfPSUih6qhPdTfi9RQPGtYaASxTKs3EDRcTHvNacE5uTtFt5DhR5wPzZqFsHML3vdfwLGjh20FAsrdZkG_PWiStV7NVFq9adG1MF78X/s320/get-ip-address.jpeg&quot; style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px;&quot; width=&quot;320&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;How to find or get Ip address of somebody else remotely&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: red;&quot;&gt;&lt;u&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;4 ways to get the IP address of the Victim or another Computer:&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;1. Using PHP notification Script&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;2. Using&amp;nbsp;Blogs&amp;nbsp;and Websites&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;3. Using Read Notify service&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;4. Sniffing during Gmail and &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;yahoo chat&amp;nbsp;&lt;/span&gt;&amp;nbsp;sessions&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;As  we are here to learn concepts so i will first explain what is an IP  address and what&#39;s its importance. So friends very basic question What  is an IP address? Why its important for hackers and security  professionals?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: red;&quot;&gt;&lt;u&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;What is an IP address?&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Basically IP address (&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD11&quot; style=&quot;background-attachment: scroll ! important; background-color: transparent ! important; background-image: none ! important; background-position: 0% 50%; border-bottom: 1px dotted rgb(0, 0, 255) ! important; color: blue; cursor: pointer ! important; display: inline ! important; float: none ! important; font-style: normal ! important; font-weight: normal ! important; padding: 0px 0px 1px ! important; position: static;&quot;&gt;Internet Protocol&lt;/span&gt;&amp;nbsp;address)  is a unique numerical value that is assigned to any computer or printer  on a computer network that uses an&amp;nbsp;internet protocol&amp;nbsp;for communication  purpose. Protocol is basically rules( for Network its rules for  communication).&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;IP address serves for two basic purposes:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;1. Host or&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD5&quot; style=&quot;background-attachment: scroll ! important; background-color: transparent ! important; background-image: none ! important; background-position: 0% 50%; border-bottom: 1px dotted rgb(0, 0, 255) ! important; color: blue; cursor: pointer ! important; display: inline ! important; float: none ! important; font-style: normal ! important; font-weight: normal ! important; padding: 0px 0px 1px ! important; position: static;&quot;&gt;network interface&lt;/span&gt;&amp;nbsp;identification&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;2. Location Addressing&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;For exploring more about IP addressing read on&amp;nbsp;&lt;a href=&quot;http://en.wikipedia.org/wiki/IP_address&quot; style=&quot;color: black; outline-color: initial; outline-style: none; outline-width: initial; text-decoration: underline;&quot;&gt;wikipedia&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;u style=&quot;color: red;&quot;&gt;&lt;b&gt;How to Find IP address of another computer?&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;1. Using PHP notification Script&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Using this Notification script you can get the IP address in just seconds. Steps of using this PHP script:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;a.&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD10&quot; style=&quot;background-attachment: scroll ! important; background-color: transparent ! important; background-image: none ! important; background-position: 0% 50%; border-bottom: 1px dotted rgb(0, 0, 255) ! important; color: blue; cursor: pointer ! important; display: inline ! important; float: none ! important; font-style: normal ! important; font-weight: normal ! important; padding: 0px 0px 1px ! important; position: static;&quot;&gt;Download&lt;/span&gt;&amp;nbsp;the PHP notify script and extract files.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;b. Now you will get two files IP.html and index.php . You need to upload these two files to any free&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD12&quot; style=&quot;background-attachment: scroll ! important; background-color: transparent ! important; background-image: none ! important; background-position: 0% 50%; border-bottom: 1px dotted rgb(0, 0, 255) ! important; color: blue; cursor: pointer ! important; display: inline ! important; float: none ! important; font-style: normal ! important; font-weight: normal ! important; padding: 0px 0px 1px ! important; position: static;&quot;&gt;web hosting&lt;/span&gt;&amp;nbsp;server.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Example:  i used www.my3gb.com to upload these two files. Create an account there  and upload these two files there as shown below.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJg3pqYkJW-FcSv379o-EhnyBxD8F2suBQDMSenKrz3fwZJWo7dM8gjHTxRHrTcxjDIPG6VUZ_xJixKdR0-TCe00aTKe97WijxhdksDMVbgHqlD0AHH_FezN5AfzEyQKDPYjoLNb7sDAk/s1600/how+to+get+an+IP+address+of+victim%252Cs+computer.PNG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;206&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJg3pqYkJW-FcSv379o-EhnyBxD8F2suBQDMSenKrz3fwZJWo7dM8gjHTxRHrTcxjDIPG6VUZ_xJixKdR0-TCe00aTKe97WijxhdksDMVbgHqlD0AHH_FezN5AfzEyQKDPYjoLNb7sDAk/s400/how+to+get+an+IP+address+of+victim%252Cs+computer.PNG&quot; width=&quot;400&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;c.  Now you will need to send the link of index.php to the victim whose  password you want to get. to get the link click on index.php shown in  above snapshot. Now a new window will open copy the link in the address  bar and send to the victim whose IP address you want.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;d.  Now when the victim opens the above link nothing will open but his Ip  address is written into the ip.html file. So open the ip.html file to  get his IP address.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;e. That&#39;s all this method... I hope you liked it.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;2. Using&amp;nbsp;Blogs&amp;nbsp;and Websites&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;This method is for those who have their&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD6&quot; style=&quot;background-attachment: scroll ! important; background-color: transparent ! important; background-image: none ! important; background-position: 0% 50%; border-bottom: 1px dotted rgb(0, 0, 255) ! important; color: blue; cursor: pointer ! important; display: inline ! important; float: none ! important; font-style: normal ! important; font-weight: normal ! important; padding: 0px 0px 1px ! important; position: static;&quot;&gt;blogs&lt;/span&gt;&amp;nbsp;or websites. Normal users can also do this as&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD4&quot; style=&quot;background-attachment: scroll ! important; background-color: transparent ! important; background-image: none ! important; background-position: 0% 50%; border-bottom: 1px dotted rgb(0, 0, 255) ! important; color: blue; cursor: pointer ! important; display: inline ! important; float: none ! important; font-style: normal ! important; font-weight: normal ! important; padding: 0px 0px 1px ! important; position: static;&quot;&gt;blog&lt;/span&gt;&amp;nbsp;is  free to make. Make a new&amp;nbsp;blog&amp;nbsp;and use any stats service like histats or  any other stats widget. Just add a new widget and put histats code  there and save template. And send the link of your&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD2&quot; style=&quot;background-attachment: scroll ! important; background-color: transparent ! important; background-image: none ! important; background-position: 0% 50%; border-bottom: 1px dotted rgb(0, 0, 255) ! important; color: blue; cursor: pointer ! important; display: inline ! important; float: none ! important; font-style: normal ! important; font-weight: normal ! important; padding: 0px 0px 1px ! important; position: static;&quot;&gt;blog to&lt;/span&gt;&amp;nbsp;your friend and get his IP.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;That&#39;s only.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;3. Using Read Notify service&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;This is an email based service. Steps to use Read Notify service:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;a. First open the Read Notify website : RCPT&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;b. Now register on this website and then it will send you confirmation mail. Verify&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD3&quot; style=&quot;background-attachment: scroll ! important; background-color: transparent ! important; background-image: none ! important; background-position: 0% 50%; border-bottom: 1px dotted rgb(0, 0, 255) ! important; color: blue; cursor: pointer ! important; display: inline ! important; float: none ! important; font-style: normal ! important; font-weight: normal ! important; padding: 0px 0px 1px ! important; position: static;&quot;&gt;your account&lt;/span&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;c. Once&amp;nbsp;your account&amp;nbsp;is activated.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Do the following steps use this service:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Compose your email just like you usually would in your own email or web email program&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Type: &amp;nbsp;&amp;nbsp;&lt;b&gt;.&lt;a href=&quot;http://readnotify.com/&quot; style=&quot;color: black; outline-color: initial; outline-style: none; outline-width: initial; text-decoration: underline;&quot; target=&quot;_blank&quot;&gt;readnotify.com&lt;/a&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;  on the end of your recipients email address (don&#39;t worry, that gets  removed before your recipients receive the email). Like this:&amp;nbsp;&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;a href=&quot;mailto:drakecn@yahoo.com&quot; style=&quot;color: black; outline-color: initial; outline-style: none; outline-width: initial; text-decoration: underline;&quot; target=&quot;_blank&quot;&gt;shiviskingg@gmail.com&lt;/a&gt;&lt;b&gt;.&lt;a href=&quot;http://readnotify.com/&quot; style=&quot;color: black; outline-color: initial; outline-style: none; outline-width: initial; text-decoration: underline;&quot; target=&quot;_blank&quot;&gt;readnotify.&lt;wbr&gt;&lt;/wbr&gt;com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Send your email&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Some things to remember:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;don&#39;t send to and from the same computer&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;if  your email program &#39;auto-completes&#39; email addresses from your address  book, you&#39;ll need to keep typing over the top of the auto-completed one  to add the .&lt;a href=&quot;http://readnotify.com/&quot; style=&quot;color: black; outline-color: initial; outline-style: none; outline-width: initial; text-decoration: underline;&quot; target=&quot;_blank&quot;&gt;readnotify.com&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;if you are cc-ing your email to other readers, you must add tracking to all of them&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;4.&amp;nbsp; Sniffing Yahoo and&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD8&quot; style=&quot;background-attachment: scroll ! important; background-color: transparent ! important; background-image: none ! important; background-position: 0% 50%; border-bottom: 1px dotted rgb(0, 0, 255) ! important; color: blue; cursor: pointer ! important; display: inline ! important; float: none ! important; font-style: normal ! important; font-weight: bold ! important; padding: 0px 0px 1px ! important; position: static;&quot;&gt;Gmail Chat&lt;/span&gt;&amp;nbsp;sessions&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;With  the help of Sniffers like ethereal, wireshark etc we can sniff the  Gmail, and&amp;nbsp;yahoo chat&amp;nbsp;sessions while we are chatiing to any our friend  and extract the IP address from there. I will explain this trick in&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD7&quot; style=&quot;background-attachment: scroll ! important; background-color: transparent ! important; background-image: none ! important; background-position: 0% 50%; border-bottom: 1px dotted rgb(0, 0, 255) ! important; color: blue; cursor: pointer ! important; display: inline ! important; float: none ! important; font-style: normal ! important; font-weight: normal ! important; padding: 0px 0px 1px ! important; position: static;&quot;&gt;detail in&lt;/span&gt;&amp;nbsp;my next article as its a long article in itself.&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;5. Bonus Method for Online Gamers&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;We  can also get the IP address from online games like counter strike, age  of empires in Game ranger etc.. Many counter strike servers use amx  mode. Just view which people are connecting and whats their IP addess as  plugins show the IP address of people connecting to the game server.&amp;nbsp;  If you have more access to counter strike server you can use status  command in console. Just go to console and type &quot;status&quot;(without quotes)  and press enter there you can see all players details his steam ID and  much more depending upon server.&lt;br /&gt;
&lt;br /&gt;
Now you have IP address but what you can do with an IP address. &lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/1153492537748701693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2011/10/how-to-get-ip-address-of-another.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/1153492537748701693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/1153492537748701693'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2011/10/how-to-get-ip-address-of-another.html' title='How to get IP address of another computer remotely'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfPSk5OCAeOSxPUq7w1GsMV-ke_grx3XbaoSyCFWfPSUih6qhPdTfi9RQPGtYaASxTKs3EDRcTHvNacE5uTtFt5DhR5wPzZqFsHML3vdfwLGjh20FAsrdZkG_PWiStV7NVFq9adG1MF78X/s72-c/get-ip-address.jpeg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-137368607517392781</id><published>2011-09-06T15:06:00.000+08:00</published><updated>2011-09-06T15:06:24.700+08:00</updated><title type='text'>How to hack online Sessions : Session Hijacking</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;color: black; font-family: Arial,Helvetica,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;Hello  friends, from now onwards we will explore the most advanced Hacking  Techniques. One of them is Session Hijacking. In today&#39;s tutorial i  will discuss How to hack the online sessions using Session Hijacking. In  today&#39;s Hacking class, i will explain basics of Session Hijacking like  What is session Hijacking and Different types of Session Hijacking  attacks and different methods to Hijack the sessions.  In my next  tutorial that is tomorrow i will explain you in Detail How  to Hijack  the Sessions and what tools you will need to Hijack the active   sessions. So friends read on...&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;font-family: Arial,Helvetica,sans-serif; margin-left: 0px; margin-right: 0px; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg51HxTIYzcSkgvRyvrXuwP94zmBhwNgO_fjT4tMr_WiVyj_qk8NAERbffy1uPDo4chK-SeSZUGcRTTELGja1ZGLwyMxk4b2phQebsIvzmhyM2ZwUzLNf3NIwX4ZhOGO17IeSxZFphuJ17x/s1600/Sessionhijacking.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;How to hack online sessions, session hijacking&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg51HxTIYzcSkgvRyvrXuwP94zmBhwNgO_fjT4tMr_WiVyj_qk8NAERbffy1uPDo4chK-SeSZUGcRTTELGja1ZGLwyMxk4b2phQebsIvzmhyM2ZwUzLNf3NIwX4ZhOGO17IeSxZFphuJ17x/s1600/Sessionhijacking.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;How Session Hijacking works&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;div style=&quot;background-color: red; font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;What is Session Hijacking?&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;Let&#39;s  discuss them in common term&#39;s, Session Hijacking  by the name only it  suggests that we are hacking someone&#39;s active  session and trying to  exploit it by taking the unauthorized access over  their computer system  or Network. So Session Hijacking is the exploitation of valid computer  or network session. Sometimes technical guys also call this HTTP cookie  theft or more correctly Magic Cookie Hack. Now you guys surely be  thinking what is Magic Cookie.&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;Magic cookie  is simply a cookie that is  used to authenticate the user on remote  server or simply computer. In  general, cookies are used to maintain the  sessions on the websites and  store the remote address of the website. So  in Session Hijacking what  Hacker does is that he tries to steal the Magic cookies of the active  session that&#39;s why its called HTTP cookie Theft.  Nowadays several  websites has started using HTTPS cookies simply called  encrypted  cookies. But we all know If encrypter exits so its decrypter  also :P.. &lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;Session Hijacking is the process of  taking over a existing active session. One of the main reason for  Hijacking the session is to bypass the authentication process  and gain  the access to the machine. Since the session is already active  so there  is no need of re-authenticating and the hacker can easily  access the  resources and sensitive information like passwords, &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD11&quot;&gt;bank&lt;/span&gt; details and much more.&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;div style=&quot;background-color: red; font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Different Types of Session Hijacking &lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;Session Hijacking involves two types of attacks :&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;1. Active attack&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;2. Passive attack&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;In Passive attack,  the hacker Hijacks a  session, but just sits back and watches and  records all the traffic  that is being sent from the computer or received  by the computer. This  is useful for finding the sensitive information  like &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD10&quot;&gt;username&lt;/span&gt; passwords of websites, windows and much more...&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;In Active attack,  hacker finds the  active session and takes over it. This is done by  forcing one of the  parties offline which is usually achieved by DDOS attack  (Distributed  Denial of service attack) . Now the hacker takes control  over the  active session and executes the commands on the system that  either give  him the sensitive information such as passwords or allow him  to login  at later time.&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;&amp;nbsp;There  are also some hybrid attacks,  where the attacker watches a session for  while and then becomes active  by taking it over. Another way is to watch  the session and periodically  &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD9&quot;&gt;inject&lt;/span&gt; data into the active session without actually taking it over. &lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;div style=&quot;background-color: red; font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Methods to Hijack Sessions&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;&amp;nbsp;There are four main methods used to perpetrate a session hijack. These are:&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt; &lt;/span&gt; &lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Session fixation,   where the  attacker sets a user&#39;s session id to one known to him, for   example by  sending the user an email with a link that contains a   particular  session id. The attacker now only has to wait until the user   logs in.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Session sidejacking, where  the  attacker uses packet sniffing to read network traffic between two   parties to steal the session cookie. Many web sites use SSL encryption   for login pages to prevent attackers from seeing the password, but do   not use encryption for the rest of the site once authenticated. This   allows attackers that can read the network traffic to intercept all the   data that is submitted to the server or web pages viewed by the client.   Since this data includes the session cookie, it allows him to   impersonate the victim, even if the password itself is not compromised.   Unsecured Wi-Fi hotspots  are particularly vulnerable, as anyone   sharing the network will  generally be able to read most of the web   traffic between other nodes  and the &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD12&quot;&gt;access point&lt;/span&gt;. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Alternatively, an attacker with  physical access can simply attempt to steal the session key by, for  example, obtaining the file or memory contents of the appropriate part  of either the user&#39;s computer or the server.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Cross-site scripting,  where  the  attacker tricks the user&#39;s computer into running code which  is  treated  as trustworthy because it appears to belong to the server,   allowing  the attacker to obtain a copy of the cookie or perform other    operations. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;That&#39;s all for today later i will discuss in detail How to do the Session Hijacking practically.&amp;nbsp;&lt;/span&gt; &lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: x-small;&quot;&gt;&lt;i&gt;I hope you all like this...&lt;/i&gt;&lt;/span&gt;&lt;br style=&quot;font-family: Arial,Helvetica,sans-serif;&quot; /&gt; &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;edmund liew&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/137368607517392781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2011/09/how-to-hack-online-sessions-session.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/137368607517392781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/137368607517392781'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2011/09/how-to-hack-online-sessions-session.html' title='How to hack online Sessions : Session Hijacking'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg51HxTIYzcSkgvRyvrXuwP94zmBhwNgO_fjT4tMr_WiVyj_qk8NAERbffy1uPDo4chK-SeSZUGcRTTELGja1ZGLwyMxk4b2phQebsIvzmhyM2ZwUzLNf3NIwX4ZhOGO17IeSxZFphuJ17x/s72-c/Sessionhijacking.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-987020679352046120</id><published>2011-09-04T11:05:00.000+08:00</published><updated>2012-06-05T10:20:26.085+08:00</updated><title type='text'>Creating a Content Management System for your ASP.NET Web Site with CKEditor</title><content type='html'>This article will show you how to integrate CKEditor into an ASP.NET  site to provide your users with the ability to edit their web site  without them having to access the underlying HTML or source files.  &lt;br /&gt;
The  Content Management System (CMS) we will be designing in this tutorial  works by storing your page HTML in a database and then using a Formview  to bind the HTML to the CKeditor text control, just like using a normal  text box.  &lt;br /&gt;
&lt;b&gt;&lt;/b&gt;&amp;nbsp; &lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Step 1: Create the Database&lt;/b&gt; &lt;/h3&gt;
For  this example I will be setting up a simple SQL Server database which  holds the HTML content for the pages that the customer will be editing.   &lt;br /&gt;
I&#39;ve created a simple table, T_Pages which has 2 columns, one to store the page name, and the other to store the HTML.  &lt;br /&gt;
&lt;img alt=&quot;Figure 1 - Database Table Design&quot; border=&quot;0&quot; height=&quot;66&quot; src=&quot;http://blog.evonet.com.au/image.axd?picture=WindowsLiveWriter/CreatingaContentManagementSys.NETWebSite_12883/image_3.png&quot; width=&quot;345&quot; /&gt;  &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
The  PageName field stores the name of the aspx file that we are editing,  and the HTML field stores the raw HTML which makes up the page:  &lt;br /&gt;
&lt;img alt=&quot;Figure 2 - Database Table entries&quot; border=&quot;0&quot; height=&quot;68&quot; src=&quot;http://blog.evonet.com.au/image.axd?picture=WindowsLiveWriter/CreatingaContentManagementSys.NETWebSite_12883/image_8.png&quot; width=&quot;476&quot; /&gt;  &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Step 2: Set up CKeditor&lt;/b&gt; &lt;/h3&gt;
Go to the &lt;a href=&quot;http://ckeditor.com/download&quot;&gt;CKEditor download site&lt;/a&gt; and download the latest versions of both &lt;b&gt;CKEditor 3.x&lt;/b&gt; and the &lt;b&gt;CKEditor for ASP.NET control&lt;/b&gt;..&amp;nbsp; Extract the files to a directory called &lt;b&gt;CKeditor&lt;/b&gt; in the root of your web site.  &lt;br /&gt;
Extract &lt;b&gt;CKEditor.NET.dll&lt;/b&gt; from the &lt;b&gt;bin\Release\&lt;/b&gt; folder and place it in the /bin directory in your web site.  &lt;br /&gt;
&lt;a href=&quot;http://blog.evonet.com.au/image.axd?picture=image_9.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;484&quot; src=&quot;http://blog.evonet.com.au/image.axd?picture=image_thumb_9.png&quot; style=&quot;background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;235&quot; /&gt;&lt;/a&gt;  &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Step 3: Create a site administration page to edit page content&lt;/b&gt; &lt;/h3&gt;
Now  we create a simple aspx page that contains a Formview.&amp;nbsp; Make sure you  secure this page so anonymous users cannot edit the page text!  &lt;br /&gt;
At the top of the page, register the CKeditor control:  &lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;csharpcode&quot;&gt;&amp;lt;%@ Register Assembly=&lt;span class=&quot;str&quot;&gt;&quot;CKEditor.NET&quot;&lt;/span&gt; Namespace=&lt;span class=&quot;str&quot;&gt;&quot;CKEditor.NET&quot;&lt;/span&gt; TagPrefix=&lt;span class=&quot;str&quot;&gt;&quot;CKEditor&quot;&lt;/span&gt; %&amp;gt;&lt;/pre&gt;
&amp;nbsp; &lt;br /&gt;
Now create a Formview with an EditItemTemplate which binds  the CKeditor control to the HTML field in your database depending on  what page is to be edited.&amp;nbsp; The CKeditor control has a large number of  settings (see &lt;a href=&quot;http://docs.cksource.com/CKEditor_3.x/Developers_Guide&quot;&gt;http://docs.cksource.com/CKEditor_3.x/Developers_Guide&lt;/a&gt;) but the main ones that we are interested in are:  &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;ToolbarSet &lt;/b&gt;- This allows you to create a custom  toolbar that only shows the font manipulation controls that you want  your customers to access (We will be discussing this item and  customising it further below, under Step 5 - Customising FCKEditor.)  &lt;/li&gt;
&lt;li&gt;&lt;b&gt;EditorAreaCSS&lt;/b&gt; - This allows you to specify what the text inside the FCKeditor control looks like.&lt;/li&gt;
&lt;/ul&gt;
The Formview will also need a Save Button which runs the &lt;b&gt;update &lt;/b&gt;command to save changes. I also recommend a Cancel button, but have left it out of this example.  &lt;br /&gt;
The Formview code then looks something like this:&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;FormView &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;DataKeyNames&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;page&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;DataSourceID&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;dsSiteAdministration&quot; 
&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;FormView1&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;server&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;DefaultMode&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;Edit&quot;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;EditItemTemplate&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;CKEditor&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;CKEditorControl &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;CKeditor1&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;server&quot; 
        &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;ToolbarSet&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;MyToolbarSet&quot;
        &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;Value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&#39;&lt;/span&gt;&lt;span style=&quot;background: none repeat scroll 0% 0% yellow;&quot;&gt;&amp;lt;%&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;# &lt;/span&gt;Bind(&quot;html&quot;) &lt;span style=&quot;background: none repeat scroll 0% 0% yellow;&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&#39; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;EditorAreaCSS&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;/css/editor.css&quot;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;CKEditor&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;CKEditorControl&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;LinkButton &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;btnSave&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;server&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;CommandName&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;Update&quot;
        &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;Save changes&quot; /&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;EditItemTemplate&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;FormView&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&amp;nbsp; &lt;br /&gt;
You also need to create the DataSource.&amp;nbsp; I use the  SQLDataSource here, but recommend ObjectDataSources for production  environments:&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;SqlDataSource &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;dsSiteAdministration&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;server&quot; 
&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;ConnectionString&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;&lt;/span&gt;&lt;span style=&quot;background: none repeat scroll 0% 0% yellow;&quot;&gt;&amp;lt;%&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;$ &lt;/span&gt;ConnectionStrings:MyConnectionString &lt;span style=&quot;background: none repeat scroll 0% 0% yellow;&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&quot; 
&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;SelectCommand&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;SELECT * FROM [T_Pages] WHERE page=@page&quot;
&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;UpdateCommand&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;UPDATE [T_Pages] SET HTML=@HTML WHERE page=@page&quot;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;SelectParameters&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;QueryStringParameter &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;Name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;page&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;QueryStringField&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;page&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;Type&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;string&quot; /&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;SelectParameters&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;UpdateParameters&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Parameter &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;Name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;html&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;Type&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;string&quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;QueryStringParameter &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;Name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;page&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;QueryStringField&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;page&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;Type&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;string&quot; /&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;UpdateParameters&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;SqlDataSource&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&amp;nbsp; &lt;br /&gt;
Our application will call the&lt;b&gt; SiteAdministration.aspx&lt;/b&gt; page with a parameter telling it which page to retrieve from the database for editing. such as &lt;b&gt;SiteAdministration.aspx?page=AboutUs&lt;/b&gt;.  &lt;br /&gt;
You should put checks in your page to ensure that a valid &lt;b&gt;QueryStringParameter&lt;/b&gt; is being passed.  &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Step 4: Modify your pages so they retrieve content from your database&lt;/b&gt; &lt;/h3&gt;
For existing pages that you wish to allow editing on, simply create a  new row in your T_Pages database table with the PageName column  containing the page name, and the html column containing all the  editable part of the page text, including all html content.  &lt;br /&gt;
Then, simply modify your pages by putting in a repeater to display the HTML from your database:&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;html&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;head&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;Title&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;head&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Repeater &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;server&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;Repeater1&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;DataSourceID&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;dsPage&quot;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;ItemTemplate&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Label &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;lblPage&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;server&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&#39;&lt;/span&gt;&lt;span style=&quot;background: none repeat scroll 0% 0% yellow;&quot;&gt;&amp;lt;%&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;# &lt;/span&gt;Eval(&quot;HTML&quot;) &lt;span style=&quot;background: none repeat scroll 0% 0% yellow;&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&#39; /&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;ItemTemplate&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Repeater&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;html&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
The Datasource simply looks at what page you specify (using the  DefaultValue setting in the &amp;lt;Parameter&amp;gt; section) and retrieves the  appropriate HTML:&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;SqlDataSource &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;dsPage&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;server&quot; 
&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;ConnectionString&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;&lt;/span&gt;&lt;span style=&quot;background: none repeat scroll 0% 0% yellow;&quot;&gt;&amp;lt;%&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;$ &lt;/span&gt;ConnectionStrings:MyConnectionString &lt;span style=&quot;background: none repeat scroll 0% 0% yellow;&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&quot; 
&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;SelectCommand&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;SELECT * FROM [T_Pages] WHERE page=@page&quot; &amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;SelectParameters&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Parameter &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;Name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;page&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;Type&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;string&quot; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;DefaultValue&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;AboutUs&quot; /&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;SelectParameters&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;SqlDataSource&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&amp;nbsp; &lt;br /&gt;
We will also show a link to edit the page.&amp;nbsp; For production  environments, you should set this link up to only appear if the user has  authenticated as a site administrator.&amp;nbsp; The script below removes the  &#39;.aspx&#39;&amp;nbsp; extension from the current page and then creates a hyperlink  with the remainder as a query parameter to the Site Administration page.&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color: #2b91af;&quot;&gt;HttpContext&lt;/span&gt;.Current.User.Identity.IsAuthenticated)
{
    &lt;span style=&quot;color: blue;&quot;&gt;string &lt;/span&gt;MyPage = Strings.LCase(Strings.Left
        (System.IO.&lt;span style=&quot;color: #2b91af;&quot;&gt;Path&lt;/span&gt;.GetFileName(Request.ServerVariables(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;SCRIPT_NAME&quot;&lt;/span&gt;)), 
        Strings.InStr(System.IO.&lt;span style=&quot;color: #2b91af;&quot;&gt;Path&lt;/span&gt;.GetFileName(Request.ServerVariables(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;SCRIPT_NAME&quot;&lt;/span&gt;)), &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;.&quot;&lt;/span&gt;) - 1));
    Response.Write(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&amp;lt;a href=&#39;/admin/siteadministration.aspx?page=&quot; &lt;/span&gt;+ MyPage + &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&#39;&amp;gt;Edit this page&amp;lt;/a&amp;gt;&quot;&lt;/span&gt;);
}
&lt;/pre&gt;
So let&#39;s recap with an example &#39;About Us&#39; page called aboutus.aspx:  &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;The SQL Database contains a record for &#39;aboutus&#39; as the &lt;b&gt;Page &lt;/b&gt;and the formatted HTML for the page in the &lt;b&gt;HTML &lt;/b&gt;column.  &lt;/li&gt;
&lt;li&gt;Visitors to aboutus.aspx will get the formatted HTML page from the database via a Repeater control.  &lt;/li&gt;
&lt;li&gt;Site Administrators will see a &#39;Edit this Page&#39; link which will go to &lt;b&gt;siteadministration.aspx?page=aboutus.&lt;/b&gt;  &lt;/li&gt;
&lt;li&gt;Clicking on &#39;Edit this Page&#39; will show the CKEditor text box populated with the HTML from the database in a WYSIWYG format.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Step 5: Customising the CKEditor Toolbar&lt;/b&gt; &lt;/h3&gt;
Finally, the ToolBar can be customised to only show the text manipulation features you approve.&amp;nbsp; &lt;br /&gt;
The default toolbar sets &lt;b&gt;Full &lt;/b&gt;and &lt;b&gt;Basic&lt;/b&gt; are defined as follows:  &lt;br /&gt;
config.toolbar_Full =&lt;br /&gt;
[&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; { name: &#39;document&#39;, items : [ &#39;Source&#39;,&#39;-&#39;,&#39;Save&#39;,&#39;NewPage&#39;,&#39;DocProps&#39;,&#39;Preview&#39;,&#39;Print&#39;,&#39;-&#39;,&#39;Templates&#39; ] },&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; { name: &#39;clipboard&#39;, items : [ &#39;Cut&#39;,&#39;Copy&#39;,&#39;Paste&#39;,&#39;PasteText&#39;,&#39;PasteFromWord&#39;,&#39;-&#39;,&#39;Undo&#39;,&#39;Redo&#39; ] },&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; { name: &#39;editing&#39;, items : [ &#39;Find&#39;,&#39;Replace&#39;,&#39;-&#39;,&#39;SelectAll&#39;,&#39;-&#39;,&#39;SpellChecker&#39;, &#39;Scayt&#39; ] },&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;  { name: &#39;forms&#39;, items : [ &#39;Form&#39;, &#39;Checkbox&#39;, &#39;Radio&#39;, &#39;TextField&#39;,  &#39;Textarea&#39;, &#39;Select&#39;, &#39;Button&#39;, &#39;ImageButton&#39;,&amp;nbsp;&amp;nbsp; &#39;HiddenField&#39; ] },&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;/&#39;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; { name: &#39;basicstyles&#39;, items : [ &#39;Bold&#39;,&#39;Italic&#39;,&#39;Underline&#39;,&#39;Strike&#39;,&#39;Subscript&#39;,&#39;Superscript&#39;,&#39;-&#39;,&#39;RemoveFormat&#39; ] },&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;  { name: &#39;paragraph&#39;, items : [  &#39;NumberedList&#39;,&#39;BulletedList&#39;,&#39;-&#39;,&#39;Outdent&#39;,&#39;Indent&#39;,&#39;-&#39;,&#39;Blockquote&#39;,&#39;CreateDiv&#39;,&#39;-&amp;nbsp;&amp;nbsp;   &#39;,&#39;JustifyLeft&#39;,&#39;JustifyCenter&#39;,&#39;JustifyRight&#39;,&#39;JustifyBlock&#39;,&#39;-&#39;,&#39;BidiLtr&#39;,&#39;BidiRtl&#39;  ] },&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; { name: &#39;links&#39;, items : [ &#39;Link&#39;,&#39;Unlink&#39;,&#39;Anchor&#39; ] },&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; { name: &#39;insert&#39;, items : [ &#39;Image&#39;,&#39;Flash&#39;,&#39;Table&#39;,&#39;HorizontalRule&#39;,&#39;Smiley&#39;,&#39;SpecialChar&#39;,&#39;PageBreak&#39;,&#39;Iframe&#39; ] },&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;/&#39;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; { name: &#39;styles&#39;, items : [ &#39;Styles&#39;,&#39;Format&#39;,&#39;Font&#39;,&#39;FontSize&#39; ] },&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; { name: &#39;colors&#39;, items : [ &#39;TextColor&#39;,&#39;BGColor&#39; ] },&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; { name: &#39;tools&#39;, items : [ &#39;Maximize&#39;, &#39;ShowBlocks&#39;,&#39;-&#39;,&#39;About&#39; ] }&lt;br /&gt;
];&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;a href=&quot;http://blog.evonet.com.au/image.axd?picture=image_10.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;97&quot; src=&quot;http://blog.evonet.com.au/image.axd?picture=image_thumb_10.png&quot; style=&quot;background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;789&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
config.toolbar_Basic =&lt;br /&gt;
[&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [&#39;Bold&#39;, &#39;Italic&#39;, &#39;-&#39;, &#39;NumberedList&#39;, &#39;BulletedList&#39;, &#39;-&#39;, &#39;Link&#39;, &#39;Unlink&#39;,&#39;-&#39;,&#39;About&#39;]&lt;br /&gt;
];&lt;br /&gt;
&lt;pre&gt;&lt;a href=&quot;http://blog.evonet.com.au/image.axd?picture=image_11.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;37&quot; src=&quot;http://blog.evonet.com.au/image.axd?picture=image_thumb_11.png&quot; style=&quot;background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;199&quot; /&gt;&lt;/a&gt;&lt;/pre&gt;
&amp;nbsp; &lt;br /&gt;
To add your own toolbars, simply add a custom toolbar definition inside the &lt;code&gt;config.js&lt;/code&gt; file, and reference your new ToolbarSet in your ASP.NET control, as discussed in Step 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;About The Author&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This article is written by bartek marnane, He blogs at &lt;b&gt;www.blog.evonet.com.au/ &lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/987020679352046120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2011/09/creating-content-management-system-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/987020679352046120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/987020679352046120'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2011/09/creating-content-management-system-for.html' title='Creating a Content Management System for your ASP.NET Web Site with CKEditor'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-8296878835336832977</id><published>2011-08-28T10:13:00.000+08:00</published><updated>2011-08-28T10:13:32.417+08:00</updated><title type='text'>SQL SERVER – 2008 – Configure Database Mail – Send Email From SQL Database</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Today I would discuss  about the Database Mail which is used to send the Email using SQL  Server.&amp;nbsp; In order to send mail using Database Mail  in SQL Server, there are 3 basic steps that need to be carried out. 1)  Create Profile and Account 2) Configure Email 3) Send Email.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Step 1) Create Profile and Account:&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;You need to create a profile and account  using the Configure Database Mail Wizard which can be accessed from the  Configure Database Mail context menu of the Database Mail node in  Management Node. This wizard is used to manage accounts, profiles, and  Database Mail global settings which are shown below:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;516&quot; src=&quot;http://www.pinaldave.com/blogfolder/dbmail/step-1%20wizard.gif&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;439&quot; src=&quot;http://www.pinaldave.com/blogfolder/dbmail/step-2%20openWizard.gif&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;437&quot; src=&quot;http://www.pinaldave.com/blogfolder/dbmail/step-3%20Profile.gif&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;437&quot; src=&quot;http://www.pinaldave.com/blogfolder/dbmail/step-4%20CreateProfile.gif&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;435&quot; src=&quot;http://www.pinaldave.com/blogfolder/dbmail/step-5%20CreateProfile2.gif&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;435&quot; src=&quot;http://www.pinaldave.com/blogfolder/dbmail/step-6%20AddAccount.gif&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;435&quot; src=&quot;http://www.pinaldave.com/blogfolder/dbmail/step-7%20SMTPAccounts.gif&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;435&quot; src=&quot;http://www.pinaldave.com/blogfolder/dbmail/step-8%20Manage.gif&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;435&quot; src=&quot;http://www.pinaldave.com/blogfolder/dbmail/step-9%20Parameters.gif&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;435&quot; src=&quot;http://www.pinaldave.com/blogfolder/dbmail/step-10%20Complete.gif&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;435&quot; src=&quot;http://www.pinaldave.com/blogfolder/dbmail/step-11%20Success.gif&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Step 2) Configure Email:&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;After the Account and the Profile are  created successfully, we need to configure the Database Mail. To  configure it, we need to enable the Database Mail XPs parameter through  the sp_configure stored procedure, as shown here:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;code style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: darkred;&quot;&gt;sp_CONFIGURE &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&#39;show&amp;nbsp;advanced&#39;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;1&lt;br /&gt;
GO&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;RECONFIGURE&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;GO&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: darkred;&quot;&gt;sp_CONFIGURE &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&#39;Database&amp;nbsp;Mail&amp;nbsp;XPs&#39;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;1&lt;br /&gt;
GO&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;RECONFIGURE&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;GO&lt;/span&gt;&lt;/code&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;234&quot; src=&quot;http://www.pinaldave.com/blogfolder/dbmail/ConfigQuery.gif&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Step 3) Send Email:&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;After all configurations are done, we are  now ready to send an email. To send mail, we need to execute a stored  procedure sp_send_dbmail and provide the required parameters as shown  below:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;code style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;USE &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;msdb&lt;br /&gt;
GO&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;EXEC &lt;/span&gt;&lt;span style=&quot;color: darkred;&quot;&gt;sp_send_dbmail &lt;/span&gt;&lt;span style=&quot;color: #434343;&quot;&gt;@profile_name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&#39;PinalProfile&#39;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;,&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #434343;&quot;&gt;@recipients&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&#39;test@Example.com&#39;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;,&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #434343;&quot;&gt;@subject&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&#39;Test&amp;nbsp;message&#39;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;,&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #434343;&quot;&gt;@body&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&#39;This&amp;nbsp;is&amp;nbsp;the&amp;nbsp;body&amp;nbsp;of&amp;nbsp;the&amp;nbsp;test&amp;nbsp;message.&lt;br /&gt;
Congrates&amp;nbsp;Database&amp;nbsp;Mail&amp;nbsp;Received&amp;nbsp;By&amp;nbsp;you&amp;nbsp;Successfully.&#39;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;341&quot; src=&quot;http://www.pinaldave.com/blogfolder/dbmail/SendQuery.gif&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;After all validations of the parameters  entered are done, certain stored procedures are executed and the mail is  queued by Service Broker, read more at &lt;a href=&quot;http://blog.sqlauthority.com/2008/07/18/sql-server-introduction-to-service-broker/&quot; target=&quot;_blank&quot;&gt;SQL SERVER – Introduction to Service&amp;nbsp;Broker&lt;/a&gt;.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Database Mail keeps copies of outgoing e-mail messages and displays them in the &lt;strong&gt;sysmail_allitems,&lt;/strong&gt;&lt;strong&gt; sysmail_sentitems&lt;/strong&gt;, &lt;strong&gt;sysmail_unsentitems&lt;/strong&gt;, &lt;strong&gt;sysmail_faileditems&lt;/strong&gt; &lt;strong&gt;.&lt;/strong&gt; The status of the mail sent can be seen in &lt;strong&gt;sysmail_mailitems&lt;/strong&gt;  table, when the mail is sent successfully the sent_status field of the  sysmail_mailitems table is set to 1 which can again be seen in  sysmail_sentitems table. The mails that are failed will have the  sent_status field &amp;nbsp;value to 2 and those are unsent will have value 3.&lt;br /&gt;
The log can be checked in &lt;strong&gt;sysmail_log&lt;/strong&gt; table as shown below:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;code style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;SELECT &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;*&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;FROM &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;sysmail_mailitems&lt;br /&gt;
GO&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;SELECT &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;*&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;FROM &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;sysmail_log&lt;br /&gt;
GO&lt;/span&gt;&lt;/code&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;390&quot; src=&quot;http://www.pinaldave.com/blogfolder/dbmail/MailLog.gif&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Status can be verified using sysmail_sentitems table.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;418&quot; src=&quot;http://www.pinaldave.com/blogfolder/dbmail/sent_status.gif&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;After sending mail you can check the mail received in your inbox</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/8296878835336832977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2011/08/sql-server-2008-configure-database-mail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/8296878835336832977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/8296878835336832977'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2011/08/sql-server-2008-configure-database-mail.html' title='SQL SERVER – 2008 – Configure Database Mail – Send Email From SQL Database'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-8056254626720672699</id><published>2011-06-18T22:39:00.000+08:00</published><updated>2011-06-18T22:39:49.393+08:00</updated><title type='text'>Hacking with Nmap and Metasploit</title><content type='html'>Today I am writing a tutorial on hacking with Nmap with Metasploit.&lt;br /&gt;
&lt;br /&gt;
First d/l Metasploit 3.3 from the official website,Link:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.metasploit.com/&quot; target=&quot;_blank&quot;&gt;http://www.metasploit.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Let all that install, and towards the end of the installation it will   ask if you would like Nmap installed also, choose yes. Once you have   that installed the Metasploit screen will open up as shown below...&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;[Image: 1-2.jpg]&quot; border=&quot;0&quot; height=&quot;319&quot; src=&quot;http://i205.photobucket.com/albums/bb181/1-VIP-/1-2.jpg&quot; width=&quot;400&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Now type db_create &lt;br /&gt;
&lt;br /&gt;
Once you have typed that type nmap&lt;br /&gt;
&lt;br /&gt;
This loads nmap, as shown below....&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;[Image: 11.gif]&quot; border=&quot;0&quot; height=&quot;319&quot; src=&quot;http://i205.photobucket.com/albums/bb181/1-VIP-/11.gif&quot; width=&quot;400&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
You need to configure your scan now, I usually do a simple -sT -sV scan   which will tell us the open ports and services running on the victims   computer, Now type nmap -sT -sV xxx.xxx.xxx.x (X&#39;s being victims Ip   number), Demonstrated below.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;[Image: 11-1.gif]&quot; border=&quot;0&quot; height=&quot;319&quot; src=&quot;http://i205.photobucket.com/albums/bb181/1-VIP-/11-1.gif&quot; width=&quot;400&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Now give it 5 minutes to complete the scan,Once that is complete if your lucky you should get a response like this...&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;[Image: 12.gif]&quot; border=&quot;0&quot; height=&quot;319&quot; src=&quot;http://i205.photobucket.com/albums/bb181/1-VIP-/12.gif&quot; width=&quot;400&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
This is basically a list of the open ports and services running on the   target machine, Now the handy feature of the metasploit 3.3 framework is   the autopwn feature, this basically searches and runs all matching   exploits in the Metasploit database against the target machine and if   successful will create a shell or similar privilege for the attacker.&lt;br /&gt;
&lt;br /&gt;
Now once you have the nmap results delivered back to you showing the   open ports and services type db_autopwn -p -t -e , From this point you   will either have access to the victims computer through a successfully   launched exploit or you will get a response saying the machine wasn&#39;t   vulnerable to any of the exploits in the Metasploit database.   Unfortunately on this particular machine I found it wasn&#39;t vulnerable as   the image below proves.Good luck.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;[Image: ff.gif]&quot; border=&quot;0&quot; height=&quot;319&quot; src=&quot;http://i205.photobucket.com/albums/bb181/1-VIP-/ff.gif&quot; width=&quot;400&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/8056254626720672699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2011/06/hacking-with-nmap-and-metasploit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/8056254626720672699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/8056254626720672699'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2011/06/hacking-with-nmap-and-metasploit.html' title='Hacking with Nmap and Metasploit'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-1566580030330683332</id><published>2011-06-17T17:54:00.000+08:00</published><updated>2011-06-17T17:54:03.014+08:00</updated><title type='text'>Surfing Internet anonymously using TOR (it is the Same software used by famous WIKILEAKS website)</title><content type='html'>As far reading my other &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD7&quot;&gt;articles about&lt;/span&gt; &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD6&quot;&gt;anonymous surfing&lt;/span&gt; &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD3&quot;&gt;you have got&lt;/span&gt; to know that &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD12&quot;&gt;a proxy&lt;/span&gt; can &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD5&quot;&gt;hide your IP&lt;/span&gt; but it cannot be trusted because it may &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD10&quot;&gt;give away&lt;/span&gt; your identity if needed. But there Exist a away by which &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD11&quot;&gt;you can&lt;/span&gt; Surf &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD1&quot;&gt;Internet&lt;/span&gt; any No one can trace you even CIA , FBI or M15 cannot trace you. A example of it is &lt;b&gt;WIKILEAK&lt;/b&gt; which use the the same &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD2&quot;&gt;software&lt;/span&gt; that I am going to tell you.&lt;br /&gt;
&lt;br /&gt;
The Software’s  name is &lt;b&gt;TOR (THE ONION ROUTING)&lt;/b&gt; and it can be downloaded from (http://www.ziddu.com/download/12331095/vidalia-bundle-0.2.1.26-0.2.10-1.exe.html) for free.&lt;br /&gt;
Note: You need to install a &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD8&quot;&gt;Mozilla firefox&lt;/span&gt; add on which is included in package you have downloaded to use Tor.&lt;br /&gt;
&lt;br /&gt;
Now follow the following Steps&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1)&lt;/b&gt; Download the TOR and run it.&lt;br /&gt;
&lt;b&gt;2)&lt;/b&gt; Open the &#39;Vidalia Control Panel&#39; from the task bar and Click on &#39;Start Tor&#39;.&lt;br /&gt;
&lt;b&gt;3) &lt;/b&gt;Now open &lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD4&quot;&gt;Mozilla Firefox browser&lt;/span&gt;, single click on red highlighted &#39;Tor Disabled&#39; on right corner of browser and it will turn to green highlighted &#39;Tor Enabled&#39;.</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/1566580030330683332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2011/06/surfing-internet-anonymously-using-tor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/1566580030330683332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/1566580030330683332'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2011/06/surfing-internet-anonymously-using-tor.html' title='Surfing Internet anonymously using TOR (it is the Same software used by famous WIKILEAKS website)'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4267682273897969213.post-5275134833802572490</id><published>2011-06-16T20:00:00.000+08:00</published><updated>2011-06-16T20:00:40.212+08:00</updated><title type='text'>The Difference Between a DoS and a DDoS Attack</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #111111; font-size: 14px; line-height: 22px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin: 0px 0px 1.571em; padding: 0px;&quot;&gt;What is the difference between the two?&lt;/div&gt;&lt;div style=&quot;margin: 0px 0px 1.571em; padding: 0px;&quot;&gt;Whilst DoS and DDoS sound remarkably similar there are in fact differences between the two -&lt;/div&gt;&lt;h3 style=&quot;font-weight: normal; line-height: 1.222em; margin: 1.833em 0px 0.611em; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;DoS&lt;/span&gt;&lt;/h3&gt;&lt;div style=&quot;margin: 0px 0px 1.571em; padding: 0px;&quot;&gt;A DoS Attack is a Denial of Service attack.&lt;/div&gt;&lt;div style=&quot;margin: 0px 0px 1.571em; padding: 0px;&quot;&gt;This means that one computer and one internet connection is used to flood a server with packets (TCP / UDP).&lt;/div&gt;&lt;div style=&quot;margin: 0px 0px 1.571em; padding: 0px;&quot;&gt;The point of such a denial of service attack is to overload the targeted server’s bandwidth and other resources.&lt;/div&gt;&lt;div style=&quot;margin: 0px 0px 1.571em; padding: 0px;&quot;&gt;This will make the server inaccessible to others, thereby blocking the website or whatever else is hosted there.&lt;/div&gt;&lt;h3 style=&quot;font-weight: normal; line-height: 1.222em; margin: 1.833em 0px 0.611em; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;DDoS&lt;/span&gt;&lt;/h3&gt;&lt;div style=&quot;margin: 0px 0px 1.571em; padding: 0px;&quot;&gt;A DDoS Attack is a Distributed Denial of Service Attack.&lt;/div&gt;&lt;div style=&quot;margin: 0px 0px 1.571em; padding: 0px;&quot;&gt;In most respects it is similar to a DoS attack but the results are much, much different.&lt;/div&gt;&lt;div style=&quot;margin: 0px 0px 1.571em; padding: 0px;&quot;&gt;Instead of one computer and one internet connection the DDoS attack utilises many computers and many connections.&lt;/div&gt;&lt;div style=&quot;margin: 0px 0px 1.571em; padding: 0px;&quot;&gt;The computers behind such an attack are often distributed around the whole world and will be part of what is known as a&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;botnet.&lt;/div&gt;&lt;div style=&quot;margin: 0px 0px 1.571em; padding: 0px;&quot;&gt;The  main difference between a DDoS attack vs a DoS attack, therefore, is  that the target server will be overload by hundreds or even thousands of  requests in the case of the former as opposed to just one attacker in  the case of the latter.&lt;/div&gt;&lt;div style=&quot;margin: 0px 0px 1.571em; padding: 0px;&quot;&gt;Therefore it is much, much harder for a server to withstand a DDoS attack as opposed to the simpler DoS incursion. &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmundlvm.blogspot.com/feeds/5275134833802572490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edmundlvm.blogspot.com/2011/06/difference-between-dos-and-ddos-attack.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/5275134833802572490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4267682273897969213/posts/default/5275134833802572490'/><link rel='alternate' type='text/html' href='http://edmundlvm.blogspot.com/2011/06/difference-between-dos-and-ddos-attack.html' title='The Difference Between a DoS and a DDoS Attack'/><author><name>Edmund Liew</name><uri>http://www.blogger.com/profile/07648124731870490747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-pIUKtfgndro/Tc-8EDcTXEI/AAAAAAAAAB8/Vqzpe9U-4ZU/s220/b.jpg'/></author><thr:total>0</thr:total></entry></feed>