<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DUcBQ3szcCp7ImA9WhRbEUU.&quot;"><id>tag:blogger.com,1999:blog-21773982</id><updated>2012-02-02T04:50:52.588-08:00</updated><category term="mex" /><category term="Pending Changes" /><category term="bug" /><category term="scandoo" /><category term="Virtual Address" /><category term="file lock" /><category term="registers" /><category term="Apple" /><category term="cityVille" /><category term="cs" /><category term="DivX" /><category term="WPA2" /><category term="VPN" /><category term="Thread Checker" /><category term="f-secure" /><category term="SQL Connection Dialog" /><category term="Roaming profile" /><category term="GIMP" /><category term="registration" /><category term="SSIS" /><category term="protection" /><category term="Athlon XP" /><category term="unmanaged code" /><category term="compress" /><category term="Language translator" /><category term="Threading" /><category term="dumpbin" /><category term="google wave" /><category term="java" /><category term="GridView" /><category term="shell script windows powershell certificate" /><category term="msi" /><category term="programming tips" /><category term="Wndows XP tips" /><category term="CDEx" /><category term="clean windows" /><category term="custom action class" /><category term="Sleep is Death" /><category term="visual studio .net" /><category term="Bada" /><category term="MSVC" /><category term="tablets" /><category term="object oriented" /><category term="PC Authority" /><category term="Chroma Noise Reduction" /><category term="Test Project" /><category term="white balance" /><category term="google" /><category term="siteadvisor" /><category term="online tv" /><category term="Microsoft" /><category term="File Headers" /><category term="Environment Variable" /><category term="avira" /><category term=".Net" /><category term="reverse lookup" /><category term="file compression" /><category term="ebook" /><category term="tasks" /><category term="csharp" /><category term="onecare" /><category term="Audio" /><category term="plugin" /><category term="DataSet" /><category term="Saturation" /><category term="ALU" /><category term="array of pointers" /><category term="codec" /><category term="photoshop elements" /><category term="Regedit" /><category term="web server" /><category term="update" /><category term="BLAS" /><category term="Mobile Security" /><category term="nvarchar" /><category term="website scan" /><category term="windows service" /><category term="processor" /><category term="Stack Checking" /><category term="SIMD" /><category term="create documents" /><category term="colour subject" /><category term="phone spam" /><category term="Internet Security" /><category term="change registry setting" /><category term="video filters" /><category term="AMD stream Computing" /><category term="Linq" /><category term="intptr" /><category term="APPEND Path" /><category term="marketing phone" /><category term="ATI" /><category term="virus" /><category term="32bit" /><category term="Full join" /><category term="Paint.Net" /><category term="Inner join" /><category term="VOIP" /><category term="Utilities" /><category term="bottleneck" /><category term="subroutine" /><category term="WebService" /><category term="Join" /><category term="web" /><category term="performance monitor" /><category term="Fake phone numbers" /><category term="mobile phones" /><category term="Babel fish" /><category term="IMSL" /><category term="php Regedit" /><category term="web games" /><category term="Super Amoled" /><category term="scene modes" /><category term="Add or Remove programs" /><category term="pointers" /><category term="encryption" /><category term="Flash" /><category term="pda" /><category term="function" /><category term="leaktest" /><category term="antispyware" /><category term="firmware" /><category term="tv" /><category term="droid" /><category term="aspx" /><category term="skydrive" /><category term="syknet" /><category term="DataView" /><category term="select" /><category term="dvd recorder" /><category term="scientific library" /><category term="website check" /><category term="toggle" /><category term="Sharpen" /><category term="schema" /><category term="Mobile Antispyware" /><category term="css cascading stylesheet selector background html external attribute div" /><category term="callback" /><category term="smartphone" /><category term="comodo" /><category term="filter" /><category term="online storage" /><category term="low battery warning" /><category term="WEP" /><category term="uninstaller" /><category term="Security News" /><category term="software" /><category term="errors" /><category term="Notes" /><category term="BSOD" /><category term="HKEY" /><category term="Wav" /><category term="fatal error" /><category term="amazon cloud drive" /><category term="delegate" /><category term="Team Foundation Server" /><category term="VirtualDub" /><category term="dllimport" /><category term="S8500" /><category term="replace text" /><category term="enable OpenMP" /><category term="statistical library" /><category term="Froyo" /><category term="virtual memory" /><category term="perfmon" /><category term="keyword" /><category term="browser" /><category term="avi" /><category term="windows" /><category term="syncplicity" /><category term="website optimization" /><category term="cache miss" /><category term="Mobile Protection" /><category term="merge" /><category term="Hue" /><category term="ASP Postback" /><category term="debug" /><category term="Brook" /><category term="Barton" /><category term="Windows Diagnostics" /><category term="vhs" /><category term="RCA" /><category term="inverse" /><category term="convolution in 2D" /><category term="grc" /><category term="VB" /><category term="digital tv" /><category term="Do Not Call" /><category term="matlab" /><category term="WinPatrol" /><category term="stack" /><category term="dos window" /><category term="free software" /><category term="Transact SQL" /><category term="antivirus" /><category term="open office" /><category term="dynamic memory allocation" /><category term="tunnel" /><category term="AAC" /><category term="failure" /><category term="Macros" /><category term="Management studio" /><category term="keywords" /><category term="windows utility" /><category term="VOB" /><category term="malwarebytes" /><category term="jokes" /><category term="ePad" /><category term="rip cd" /><category term="SQL Indexes" /><category term="malware" /><category term="clock blocks" /><category term="command prompt" /><category term="permutation" /><category term="Photo" /><category term="DataTable" /><category term="updates" /><category term="Google technologies" /><category term="RSA" /><category term="MSBUILD" /><category term="reshape" /><category term="iPads" /><category term="Control Panel" /><category term="select statement" /><category term="Puppy Linux" /><category term="Gingerbread" /><category term="spam" /><category term="windirstat" /><category term="video" /><category term="editbin" /><category term="PAL" /><category term="Knuth" /><category term="uninstall" /><category term="pcflank" /><category term="Scanit" /><category term="FPU" /><category term=".Net Remoting" /><category term="cinepak" /><category term="cd" /><category term="HPC" /><category term="format" /><category term="memory" /><category term="event handler" /><category term="Visual Studio Setup" /><category term="indeo" /><category term="Windows Enterprise Defender" /><category term="Browser Spy" /><category term="phone numbers" /><category term="duplicate layer." /><category term="asp.net" /><category term="secure ports" /><category term="Merging" /><category term="Managed Code" /><category term="black and white background" /><category term="Check in" /><category term="Installer" /><category term="online scan" /><category term="DataGrid" /><category term="DataRelation" /><category term="solutions" /><category term="dynamic sql" /><category term="PageLoad" /><category term="outpost" /><category term="OpenMP" /><category term="GUI" /><category term="sysinternals" /><category term="encrypt" /><category term="Browser security" /><category term="content management" /><category term="matlab function in fortran" /><category term="error on page" /><category term="spyware" /><category term="Discounts" /><category term="DVD" /><category term="VPN client" /><category term="website links" /><category term="NTSC" /><category term="MIDP" /><category term="JoinView" /><category term="Zenithink" /><category term="Windows Registry" /><category term="cloud computing" /><category term="Branching" /><category term="MP3" /><category term="multicore" /><category term="cooking ROMs" /><category term="windows explorer" /><category term="delegates" /><category term="Browserscope" /><category term="entrypoint" /><category term="FLOPS" /><category term="Dynamic Noise Reduction" /><category term="environment path" /><category term="kernel" /><category term="Data Binding" /><category term="add and remove programs" /><category term="exception" /><category term="Special Deals" /><category term="toggle button" /><category term="utility function" /><category term="SSID" /><category term="MKL" /><category term="replace matched" /><category term="colour foreground" /><category term="Solution Explorer" /><category term="Psytel encoder" /><category term="GPU" /><category term="firewall hardening" /><category term="DNS" /><category term="SQL" /><category term="Stored Procedure" /><category term="frozen PC" /><category term="Thoroughbred" /><category term="projects" /><category term="unsharp mask" /><category term="insert" /><category term="BootLoader" /><category term="localhost" /><category term="c#" /><category term="meta tags" /><category term="Custom Control" /><category term="connection string" /><category term="active sync" /><category term="tips" /><category term="pocket RAR" /><category term="eclipse" /><category term="deinterlace" /><category term="process explorer" /><category term="allocatable pointers" /><category term="Telstra Remote Working Solution" /><category term="cpu" /><category term="aspect ratio" /><category term="Bulk Insert" /><category term="Fortran95" /><category term="Windows mobile" /><category term="MySQL" /><category term="msconfig" /><category term="sharpening" /><category term="WPA" /><category term="security" /><category term="DLL" /><category term="Gmail" /><category term="Huawei IDEOS U8150" /><category term="magnetic lasso" /><category term="compile" /><category term="visual studio" /><category term="editor" /><category term="Fortran" /><category term="security holes" /><category term="MPEG2" /><category term="email address" /><category term="pet society" /><category term="Cheat sheets" /><category term="IIS hardening" /><category term="conv2" /><category term="capture" /><category term="vista" /><category term="ide" /><category term="BrowserCheck" /><category term="Picasa web album" /><category term="bitdefender" /><category term="enable vectorisation" /><category term="online tools" /><category term="XP" /><category term="joomla" /><category term="64bit" /><category term="kaspersky" /><category term="custom button" /><category term="function pointer" /><category term="online shopping" /><category term="Security Software Review" /><category term="Lambda Expressions" /><category term="Composite cable" /><category term="C++" /><category term="tables" /><category term="sql server 2008" /><category term="Profile Guided OptimizaionBuild Macros" /><category term="MSI Installer" /><category term="GSL for windows" /><category term="Fortran90" /><category term="Radeon" /><category term="Intel Fortran" /><category term="Android" /><category term="database" /><category term="ADO.Net" /><category term="GSL" /><category term="Mobile" /><category term="Danii" /><category term="parallel programming" /><category term="counter" /><category term="TFS" /><category term="web user control" /><category term="Samsung Wave" /><category term="Palamino" /><category term="blog" /><category term="Symbian" /><category term="IIS configuration" /><category term="YUV" /><category term="Source Control Explorer" /><category term="compiler directives" /><category term="SEO" /><category term="Hidden Network" /><category term="Mobile Antivirus" /><category term="online scans" /><category term="KIES" /><category term="ninja saga" /><category term="perms" /><category term="Thread Profiler" /><category term="WiFi" /><title>xTechNotes - Technical Computing Programming Notes</title><subtitle type="html">Collection of notes on technical / computing related stuff.
Enable users to search keywords for programming help.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://xtechnotes.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>xtechnotes</name><uri>http://www.blogger.com/profile/15930752329851927874</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>96</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Xtechnotes-TechnicalComputingProgrammingNotes" /><feedburner:info uri="xtechnotes-technicalcomputingprogrammingnotes" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Xtechnotes-TechnicalComputingProgrammingNotes</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;CU4DRHw5eSp7ImA9WhRUEEw.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-7665319666938342830</id><published>2012-01-19T14:59:00.000-08:00</published><updated>2012-01-19T14:59:35.221-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-19T14:59:35.221-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="virus" /><category scheme="http://www.blogger.com/atom/ns#" term="uninstaller" /><category scheme="http://www.blogger.com/atom/ns#" term="clean windows" /><category scheme="http://www.blogger.com/atom/ns#" term="add and remove programs" /><category scheme="http://www.blogger.com/atom/ns#" term="windows service" /><category scheme="http://www.blogger.com/atom/ns#" term="file compression" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Registry" /><category scheme="http://www.blogger.com/atom/ns#" term="Control Panel" /><category scheme="http://www.blogger.com/atom/ns#" term="updates" /><title>How To Clean Up Windows</title><content type="html">This article prevents some ideas of how to clean up your computer which has the Windows Operating System. The clean up here does to refer to any kind of virus or spyware removal. Instead, this article focuses on how to get rid of the junk that we or Windows itself accumulates on your computer throughout the years.&lt;br /&gt;
&lt;br /&gt;
1. Scan using antivirus.&lt;br /&gt;
Although this article is not about removing virus but on the cleaning of junk files, one of the first step is to simply do a virus scan - just in case. Some useful articles are:&lt;br /&gt;
- using online virus scanners: http://xtechnotes.blogspot.com/2008/07/antivirus-online-scan.html&lt;br /&gt;
- discounted antivirus software http://xtechnotes.blogspot.com/2012/01/security-software-discounts-and-special.html&lt;br /&gt;
- news on security http://xtechnotes.blogspot.com/2011/08/news-security.html&lt;br /&gt;
- how to secure your computer: http://xtechnotes.blogspot.com/2010/03/how-to-secure-your-computer.html&lt;br /&gt;
&lt;br /&gt;
2. Remove all unwanted programs.&lt;br /&gt;
Find a list of all your installed programs by going to Control Panel - Add or Remove Programs.&lt;br /&gt;
Decide which programs you do not need and uninstall them.&lt;br /&gt;
- some uninstaller software: http://xtechnotes.blogspot.com/2011/07/links-to-free-software.html&lt;br /&gt;
&lt;br /&gt;
3. Find what is running in the background&lt;br /&gt;
Windows services are programs that run in the background after starting up themselves when the computer is switched on. Many will not tell you they are running. To find a list of these "services", go to Control Panel - Administrative Tools - Services.&lt;br /&gt;
Find those services which you know is definitely not needed, whether they are from Windows or not. There is no clear way to identify which service you don't want - they will come from experience. Basically just look at the name of the services - a weird name does not mean it is not needed. Sometimes look for a service with a simple name which you definitely know is not required. Example: If your computer has no wireless connection, then look for service with the name wireless and Disable it.&lt;br /&gt;
&lt;br /&gt;
4. Clean the Registry&lt;br /&gt;
WARNING: If anything goes wrong at this step, very often this will make your whole computer unable to start and you may lose everything.&lt;br /&gt;
This step should be done by experienced users only.&lt;br /&gt;
Some tools to check are: CCleaner and TweakNow RegCleaner. (see http://xtechnotes.blogspot.com/2011/07/links-to-free-software.html )&lt;br /&gt;
&lt;br /&gt;
5. Are all your files compressed?&lt;br /&gt;
Some computers may have come out of the box, configured to compress all your files by default. In Windows Explorer, if your files has filenames appearing in colour, then it may be compressed. To switch off this option, in Windows Explorer, right click on the folder and select Properties. Then uncheck any box for compression, for that file, folder or the entire drive.&lt;br /&gt;
&lt;br /&gt;
6. Check updates&lt;br /&gt;
Ensure all updates including Windows Update and other antivirus updates are up to date.&lt;br /&gt;
&lt;br /&gt;
7. Avoid re-installing Windows&lt;br /&gt;
Only reinstall Windows as a very last resort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
..... any more ideas are appreciated ....&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-7665319666938342830?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sQESHlsFGcmfB8eK48p07LWAdwc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sQESHlsFGcmfB8eK48p07LWAdwc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sQESHlsFGcmfB8eK48p07LWAdwc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sQESHlsFGcmfB8eK48p07LWAdwc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/0YAqj4C5nsY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/7665319666938342830/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=7665319666938342830" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/7665319666938342830?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/7665319666938342830?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/0YAqj4C5nsY/how-to-clean-up-windows.html" title="How To Clean Up Windows" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2012/01/how-to-clean-up-windows.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMEQHc9fCp7ImA9WhRVE0o.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-2622799790554293916</id><published>2012-01-01T12:21:00.000-08:00</published><updated>2012-01-12T05:03:21.964-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-12T05:03:21.964-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Internet Security" /><category scheme="http://www.blogger.com/atom/ns#" term="Special Deals" /><category scheme="http://www.blogger.com/atom/ns#" term="antispyware" /><category scheme="http://www.blogger.com/atom/ns#" term="Security Software Review" /><category scheme="http://www.blogger.com/atom/ns#" term="antivirus" /><category scheme="http://www.blogger.com/atom/ns#" term="Discounts" /><title>Security Software Review, Discounts and Special Deals</title><content type="html">This page lists some special offers on various security software including antivirus software and antispyware software. Since they are special deals from various sources, they are usually time limited. Please check the date when these links are posted.&lt;br /&gt;
&lt;br /&gt;
There are also links to review of antivirus, antispyware, internet security software:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: large;"&gt;Reviews&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
The links in this section provide reviews of multiple antivirus, antispyware and security software. Sometimes the reviews contradict each other in their test results. However, looking at these reviews are better than not looking at all, when deciding which software to buy.&lt;br /&gt;
&lt;a href="http://www.pcmag.com/article2/0,2817,2372364,00.asp"&gt;&lt;strong&gt;The Best Antivirus for 2012&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Posted here: 2 Jan 2012&lt;br /&gt;
Review from pcmag&lt;br /&gt;
The main winners are: Norton Antivirus 2012 and Webroot SecurityAnywhere Antivirus&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://download.cnet.com/windows/antivirus-software/"&gt;&lt;strong&gt;Reviews from CNET.com&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Antivirus Software - review various software and can be filtered, sorted.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.av-comparatives.org/en/comparativesreviews/dynamic-tests"&gt;&lt;strong&gt;AV-Comparatives&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Independent Tests of Anti-Virus Software&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.virusbtn.com/vb100/latest_comparative/index"&gt;&lt;b&gt;Virus Bulletion VB100&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
News on viruses and up-to-date review on antivirus software.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: large;"&gt;Lifetime Licences&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;The following antivirus, antispyware and security software have lifetime licences. They either let you pay once and use forever, or for multiple years. Unless otherwise stated, the list below are recommended software based on my positive experience.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.winpatrol.com/"&gt;&lt;strong&gt;WinPatrol Plus&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
"WinPatrol's easy tabbed interface allows you to explore deep inside your computer without having to be a computer expert. A one-time investment in WinPatrol PLUS provides a unique experience you won't find in any other software."&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://spyshelter.com/purchase.html"&gt;&lt;strong&gt;Spyshelter Premium&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
"SpyShelter uses special algorithms to protect you and your data against:&lt;br /&gt;- Rootkits, zero-day malware, financial viruses that are used to steal or reveal your data to other parties and other harmful software for your system&lt;br /&gt;- Extremely dangerous custom-made keyloggers and monitoring software that steal information you send via your computers- these are favorite tools of cybercriminals."&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.malwarebytes.org/products/malwarebytes_pro"&gt;&lt;strong&gt;MalwareBytes Antimalware Pro&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
"Malwarebytes Anti-Malware PRO detects AND protects in an easy-to-use, straightforward, heavy-hitting but lightweight anti-malware application.&lt;br /&gt;Consumers and personal users pay a one-time fee of just $24.95!"&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;strong&gt;Discounts and Special Deals&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Posted 12 Jan 2012&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.google.com.au/search?sourceid=chrome&amp;amp;ie=UTF-8&amp;amp;q=bit+defender+compatibility+malwarebytes"&gt;http://www.google.com.au/search?sourceid=chrome&amp;amp;ie=UTF-8&amp;amp;q=bit+defender+compatibility+malwarebytes&lt;/a&gt;&lt;br /&gt;
&lt;u&gt;Bit Defender&lt;/u&gt;&lt;br /&gt;
FREE - This can be obtained for free by Westpac Bank or St George Bank customers in Australia, for 1 year I think. Very tempting because this seems like full software for free. But please look at the review for Bit Defender first (click on the link just above, or just google '&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: small &amp;quot;Times New Roman&amp;quot;; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #222222; font-family: Calibri, sans-serif; font-size: x-small;"&gt;bit defender compatibility malwarebytes&lt;/span&gt;&lt;/span&gt;')&lt;br /&gt;
Several users have reported serious problems with this BitDefender.&lt;br /&gt;
&lt;br /&gt;
Posted 7 Jan 2012&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.spywareterminator.com/download/download.aspx"&gt;Spyware Terminator 2012&lt;/a&gt;&lt;br /&gt;
FREE - there is a round about way to get this "almost" free.&lt;br /&gt;
Download from the link above, and install it. This will be the basic version without F-Prot Antivirus.&lt;br /&gt;
After install - open the application and choose to Upgrade. Hopefully this will lead you to Trialpay.&lt;br /&gt;
In Trialpay - choose Snapfish and sign-up to print 20 photos for free. They will charge A$2.95 for handling fee.Then go back and receive installation code for full Spyware Terminator 2012 with F-Prot.&lt;br /&gt;
Summary: you get 20 free photo prints and&amp;nbsp;Spyware Terminator 2012 with F-Prot. for Free but with handling fee of A$2.95&lt;br /&gt;
&lt;br /&gt;
Posted 6 Jan 2012&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;a href="http://www.malwarebytes.org/"&gt;Malwarebytes&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;coupon code – enter BM6-3S7-665 for 20% off or alternatively try code&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;B3S-6Q1-H54 or Q65-TRJ-G7J &amp;nbsp;to save 15% during checkout (you might&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;want to check the comments for newer user-submitted coupons, some&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;might not be working, depending on the actual website where you place&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;the order)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Posted: 2 Jan 2012&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.webroot.com/En_US/sites/land-3product-25-40-50-percent-offer/"&gt;http://www.webroot.com/En_US/sites/land-3product-25-40-50-percent-offer/&lt;/a&gt;&lt;br /&gt;
Webroot SecureAnywhere Complete&lt;br /&gt;
Up to 50% discount&lt;br /&gt;
Generally, this Webroot software has excellent and fantastic review but this particular review article below is quite the opposite.&lt;br /&gt;
&lt;a href="http://www.expertreviews.co.uk/software/1288609/webroot-secureanywhere-complete"&gt;http://www.expertreviews.co.uk/software/1288609/webroot-secureanywhere-complete&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://store.expertreviews.co.uk/p24688-avg_anti-virus_2012_1-pc"&gt;http://store.expertreviews.co.uk/p24688-avg_anti-virus_2012_1-pc&lt;/a&gt;&lt;br /&gt;
AVG Anti-Virus 2012 [1-PC]&lt;br /&gt;
includes 1-PC, 1-Year license&lt;br /&gt;
RRP: A$51.50&lt;br /&gt;
Save: A$45.55 (88%)&lt;br /&gt;
Our Price: A$5.95&lt;br /&gt;
Time Remaining:&amp;nbsp; 30 days&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://download.cnet.com/Avira-Antivirus-Premium-2012/3000-2239_4-10625882.html?tag=mncol;2"&gt;http://download.cnet.com/Avira-Antivirus-Premium-2012/3000-2239_4-10625882.html?tag=mncol;2&lt;/a&gt;&lt;br /&gt;
Avira Antivirus Premium $19.99 1PC/1Yr&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.samssoftware.com.au/avira-products/home-products.html"&gt;http://www.samssoftware.com.au/avira-products/home-products.html&lt;/a&gt;&lt;br /&gt;
Avira Antivirus Premium 2012 [Avira AntiVirus 2012] Discount (10% off)&lt;br /&gt;
CODE: Avira10&lt;br /&gt;
AUD$21.19.&lt;br /&gt;
&lt;br /&gt;
Avira Internet Security 2012 Discount (10% off)&lt;br /&gt;
CODE: Avira20&lt;br /&gt;
AUD$43.28.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://zemana.plimus.com/jsp/buynow.jsp?contractId=2207786"&gt;https://zemana.plimus.com/jsp/buynow.jsp?contractId=2207786&lt;/a&gt;&lt;br /&gt;
Click here to purchase Zemana AntiLogger for $10, using “Softpedia-NY-Promo” discount code&amp;nbsp; &lt;br /&gt;
Zemana AntiLogger Full &lt;br /&gt;
RRP: A$36.00&lt;br /&gt;
Offer: $9.53&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Free Security Software&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.techsupportalert.com/best-free-hips.htm"&gt;Best Free Intrusion Prevention and Detection Utility for Home Use (HIPS)&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-2622799790554293916?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/F4IC1DjtUx0sJ7xahEVeRLV9-Rg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/F4IC1DjtUx0sJ7xahEVeRLV9-Rg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/F4IC1DjtUx0sJ7xahEVeRLV9-Rg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/F4IC1DjtUx0sJ7xahEVeRLV9-Rg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/8aSHI-b1-UE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/2622799790554293916/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=2622799790554293916" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/2622799790554293916?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/2622799790554293916?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/8aSHI-b1-UE/security-software-discounts-and-special.html" title="Security Software Review, Discounts and Special Deals" /><author><name>xtechnotes</name><uri>http://www.blogger.com/profile/15930752329851927874</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2012/01/security-software-discounts-and-special.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04FQHo9cSp7ImA9WhRQEkg.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-3562530511739152111</id><published>2011-12-07T02:59:00.001-08:00</published><updated>2011-12-07T03:05:11.469-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-07T03:05:11.469-08:00</app:edited><title>Promotion: Hungry Jacks $2 Whopper</title><content type="html">&lt;br /&gt;
All that programming is making me Hungry!&lt;br /&gt;
--- for Australian readers only ----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-gvz_V8RThz4/Tt9IPSeb5MI/AAAAAAAAACE/kQ9F-qmCx4Q/s1600/HungryJacks.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="354" mda="true" src="http://4.bp.blogspot.com/-gvz_V8RThz4/Tt9IPSeb5MI/AAAAAAAAACE/kQ9F-qmCx4Q/s640/HungryJacks.gif" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-3562530511739152111?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wkSt-T2piuTBYofCAssyAs1fqqE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wkSt-T2piuTBYofCAssyAs1fqqE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wkSt-T2piuTBYofCAssyAs1fqqE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wkSt-T2piuTBYofCAssyAs1fqqE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/Lj5uFT8YbnM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/3562530511739152111/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=3562530511739152111" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/3562530511739152111?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/3562530511739152111?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/Lj5uFT8YbnM/promotion-hungry-jacks-2-whopper.html" title="Promotion: Hungry Jacks $2 Whopper" /><author><name>xtechnotes</name><uri>http://www.blogger.com/profile/15930752329851927874</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-gvz_V8RThz4/Tt9IPSeb5MI/AAAAAAAAACE/kQ9F-qmCx4Q/s72-c/HungryJacks.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/12/promotion-hungry-jacks-2-whopper.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8FRn08eSp7ImA9WhRRFkQ.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-4965584264720610581</id><published>2011-11-30T14:40:00.000-08:00</published><updated>2011-11-30T14:40:17.371-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-30T14:40:17.371-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="statistical library" /><category scheme="http://www.blogger.com/atom/ns#" term="scientific library" /><category scheme="http://www.blogger.com/atom/ns#" term="MSVC" /><category scheme="http://www.blogger.com/atom/ns#" term="GSL for windows" /><category scheme="http://www.blogger.com/atom/ns#" term="GSL" /><category scheme="http://www.blogger.com/atom/ns#" term="Fortran" /><title>NOTES GSL</title><content type="html">Prerequisites&lt;br /&gt;
Building using Visual Studio C/C++&lt;br /&gt;
GSL Examples&lt;br /&gt;
GSL Considerations&lt;br /&gt;
Build GSL with MinGW&lt;br /&gt;
Running MSVC with minGW-built-GSL&lt;br /&gt;
GSL Makefile&lt;br /&gt;
General C define macros and typedef&lt;br /&gt;
GSL-C-Fortran Framework&lt;br /&gt;
&lt;br /&gt;
Prerequisites&lt;br /&gt;
===============&lt;br /&gt;
For running on Windows system:&lt;br /&gt;
&lt;br /&gt;
1. mingw (minimalist GNU for Windows)&lt;br /&gt;
- go to http://www.mingw.org/&lt;br /&gt;
- Download and install both mgw and msys: eg. mingw-get-inst-20110802.exe&lt;br /&gt;
- Install and select C++, Fortran and MSYS options&lt;br /&gt;
&lt;br /&gt;
2. gsl (Gnu Scientific Library)&lt;br /&gt;
- go to http://www.gnu.org/s/gsl/&lt;br /&gt;
- Download from nearest GNU mirror, eg. http://ftpmirror.gnu.org/gsl/.&lt;br /&gt;
- Unpack it to a general place like c:\gsl....&lt;br /&gt;
&lt;br /&gt;
Building using Visual Studio C/C++&lt;br /&gt;
===================================&lt;br /&gt;
http://gladman.plushost.co.uk/oldsite/computing/gnu_scientific_library.php&lt;br /&gt;
http://www.quantcode.com/modules/smartfaq/faq.php?faqid=33&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The GSL subroutines are grouped according to functionality. For this document, we say that these functionalities are grouped into packages. Each package is a folder containing the source code for that functionality. In this section, we will compile the package called BLAS.&lt;br /&gt;
&lt;br /&gt;
Note that this BLAS is actually gls_blas. It uses the underlying blas implementation called cblas.&lt;br /&gt;
cblas is the standard blas for C/C++ and is also available in MKL.&lt;br /&gt;
In this example build, we will build the gsl_blas and configure is to use cblas from MKL.&lt;br /&gt;
&lt;br /&gt;
1. Create a Visual Studio C/C++ Project called GSLProj, under the Solution called GSLSoln.&lt;br /&gt;
Add New Project - Visual C++ - Win32 - Win32 Project - {DLL, Empty Project}&lt;br /&gt;
&lt;br /&gt;
2. Go to Windows Explorer and copy the blas folder from c:\gsl....&lt;br /&gt;
and paste into the GSLProj folder.&lt;br /&gt;
Update: The following packages seemed to be a bare minimum and have enabled GSL to be compiled successfully with MSVC 2008 - blas, block, err, ieee-utils, matrix, sys, test, vector.&lt;br /&gt;
Update: Second batch of packages to be added:&lt;br /&gt;
- cdf, cheb, complex, eigen, integration, linalg, min, multimin, multiroots, permutation, poly, randist, rng, roots, sort, specfun,&lt;br /&gt;
&lt;br /&gt;
3. In Windows Explorer, copy these files from c:\gsl&lt;br /&gt;
&amp;nbsp; &amp;nbsp; config.h , templates_on.h, templates_off.h, build.h&lt;br /&gt;
and paste into the GSLProj folder.&lt;br /&gt;
&lt;br /&gt;
4. In Windows Explorer, under c:\gsl...., do a search for gsl_*.h. This will find all the gsl header files in the source code. Copy all of these and paste into a folder called gsl and put this folder under the GSLProj folder.&lt;br /&gt;
&lt;br /&gt;
5. Go back to the Visual Studio GSLProj, go to the Solution Explorer and click on the little icon called "Show All Files" just on top of the Solution tree.&lt;br /&gt;
&lt;br /&gt;
6. In the Solution Explorer, the tree becomes a folder tree view. Go to the branch GSLProj, right click on the blas folder (which appears now) and select "Include in Project". Inlcude any other project as necessary, only include their *.c is OK. All header files do not need to be INCLUDED via Visual Studio because the C compiler will pull the contents of *.h hearder files in.&lt;br /&gt;
&lt;br /&gt;
7. For the ieee-utils package, exclude the files below which are for various different operating systems other than Windows. These files have names like: fp-[OS].c&lt;br /&gt;
Including fp.c seems to be OK.&lt;br /&gt;
&lt;br /&gt;
For the matrix package, Include the matrix folder into the project.&lt;br /&gt;
Then exclude files: *.h, *.lo, *_source.c&lt;br /&gt;
Ensure that normal c files are included: &amp;nbsp; *.c&lt;br /&gt;
Note that the *_source.c files are actually pulled into the base *.c file similar to how header files are included.&lt;br /&gt;
&lt;br /&gt;
Specfun package also has these *.c files to be excluded from compile:&lt;br /&gt;
cheb_eval.c, cheb_eval_mode.c&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
In many matrix files, eg copy_source.c, file_source.c, getset_source.c, the copy.c, file.c, getset.c uses the templates_on/off.h which dynamically creates code using Preprocessor Macro definitions. This causes SEVERE problems at the line:&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;#define SHORT complex&lt;br /&gt;
because Microsoft Visual C redefines this in their math.h file as:&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;#define complex _complex&lt;br /&gt;
DO &amp;nbsp;NOT Put this macro definition /D__cplusplus &amp;nbsp;which may solve the _complex problem but creates new problems with other MS files like:&lt;br /&gt;
&lt;br /&gt;
Error&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;1&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;error C2061: syntax error : identifier 'vc_attributes'&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;42&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;VCPP_testDLL01&lt;br /&gt;
&lt;br /&gt;
To solve the _complex problem definition, add this at the top of templates_on.h:&lt;br /&gt;
#ifdef complex&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;#define fixCOMPLEX_ 1&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;#undef complex&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
Also add this at the end of templates_off.h&lt;br /&gt;
// ASSUMES that the predefined complex is _complex in Microsoft's VC include\math.h and crt\src\math.h&lt;br /&gt;
#if fixCOMPLEX_ == 1&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;#define complex _complex&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;#undef fixCOMPLEX_&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
8. Right click on the GSLProj icon and select properties. In the Properties configuration, Configuration Properties:&lt;br /&gt;
- under C/C++ - Command Line&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Add these compiler options: &lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;/DGSL_DLL /DDLL_EXPORT&lt;br /&gt;
- under C/C++ - General - Additional Include Directories:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; enter the path to the current project folder.&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;enter the path to &lt;mkl dir=""&gt;\mkl\include&lt;/mkl&gt;&lt;br /&gt;
- under Linker - General - Additional Library Directories:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; enter &lt;fortrancompiler&gt;\fortran\lib\ia32&lt;/fortrancompiler&gt;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;enter &lt;mkl dir=""&gt;\mkl\ia32\lib&lt;/mkl&gt;&lt;br /&gt;
- under Linker - Input - Additional Dependencies, enter these mkl, openmp libraries&lt;br /&gt;
&amp;nbsp; &amp;nbsp;for 32bit:&lt;br /&gt;
mkl_intel_c_dll.lib&lt;br /&gt;
mkl_intel_thread_dll.lib&lt;br /&gt;
mkl_core_dll.lib&lt;br /&gt;
libiomp5md.lib&lt;br /&gt;
&amp;nbsp; &amp;nbsp;for 64bit:&lt;br /&gt;
mkl_intel_lp64_dll.lib&lt;br /&gt;
mkl_intel_thread_dll.lib&lt;br /&gt;
mkl_core_dll.lib&lt;br /&gt;
libiomp5md.lib&lt;br /&gt;
&lt;br /&gt;
The setup above enable the project to be linked to MKL's cblas routines.&lt;br /&gt;
&lt;br /&gt;
9. Edit the config file so that the "!" is removed in the following lines:&lt;br /&gt;
#if HAVE_DECL_LDEXP&lt;br /&gt;
#if HAVE_DECL_FREXP&lt;br /&gt;
#if HAVE_DECL_HYPOT&lt;br /&gt;
For some reason the use of preprocessor macros does not seem to work well. Hence the config.h file need to be modified as above.&lt;br /&gt;
&lt;br /&gt;
10. Removing cblas from GSL code.&lt;br /&gt;
- Exclude the cblas directory from the project&lt;br /&gt;
- Exclude the file gsl\gsl_cblas.h&lt;br /&gt;
- Remove the line&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;#include &lt;gsl gsl_cblas.h=""&gt;&lt;/gsl&gt;&lt;br /&gt;
&amp;nbsp; and replace if necessary with&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;#include &lt;mkl_cblas.h&gt;&lt;/mkl_cblas.h&gt;&lt;br /&gt;
&amp;nbsp; for these files:&lt;br /&gt;
blas\blas.c&lt;br /&gt;
doc\examples\cblas.c &amp;nbsp; &amp;nbsp;// probably not needed&lt;br /&gt;
eigen\francis.c&lt;br /&gt;
eigen\nonsymmv.c&lt;br /&gt;
gsl_blas_types.h&lt;br /&gt;
&lt;br /&gt;
11. Due to using mkl_cblas.h, these definitions need to be changed.&lt;br /&gt;
in gsl_blas_types.h, change to:&lt;br /&gt;
typedef &amp;nbsp;CBLAS_ORDER &amp;nbsp; &amp;nbsp; &amp;nbsp; CBLAS_ORDER_t;&lt;br /&gt;
typedef &amp;nbsp;CBLAS_TRANSPOSE &amp;nbsp; CBLAS_TRANSPOSE_t;&lt;br /&gt;
typedef &amp;nbsp;CBLAS_UPLO &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CBLAS_UPLO_t;&lt;br /&gt;
typedef &amp;nbsp;CBLAS_DIAG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CBLAS_DIAG_t;&lt;br /&gt;
typedef &amp;nbsp;CBLAS_SIDE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CBLAS_SIDE_t; &lt;br /&gt;
... the enum keyword has been removed.&lt;br /&gt;
&lt;br /&gt;
12. Add the following Preprocessor definitions&lt;br /&gt;
/P &amp;nbsp; &amp;nbsp;- only to check the preprocessed intermediate files&lt;br /&gt;
&lt;br /&gt;
13. To add cdf package:&lt;br /&gt;
- add this to beta_inc.c&lt;br /&gt;
#include &lt;gsl gsl_machine.h=""&gt;&lt;/gsl&gt;&lt;br /&gt;
- exclude from project, usually because these files are included in other files and are not really standalone files:&lt;br /&gt;
test_auto.c, beta_inc.c&lt;br /&gt;
&lt;br /&gt;
cdf package needs the following packages:&lt;br /&gt;
specfun, cheb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
14. Various packages of GSL, such as block and matrix, have some files with the same names such as file.c.&lt;br /&gt;
But the way MSVC compiles and builds by putting all *.obj files into the same DEBUG or RELEASE folder causes a problem. A simple way is to rename some of the clashing file names. This does not affect the ability to use the GSL-DLL functions, because functions have different names withing files with same names such as file.c&lt;br /&gt;
&lt;br /&gt;
To quickly identify where duplicate filenames exist, go to Solution Explorer and click on the GSLProj project folder.&lt;br /&gt;
Near the top of the Solution Explorer panel, click on the icon to switch to Show All Files, such that all *.c files appear under the Source Files folder under your GSLProj project folder. Then rename any duplicate file names *.c.&lt;br /&gt;
&lt;br /&gt;
Alternative - Right-click, Properties, C++, Output Files. Change the Object File Name from $(IntDir)\ to, say, $(IntDir)\block\. You can repeat for the vector file group, etc.&lt;br /&gt;
&lt;br /&gt;
15. Inline functions.&lt;br /&gt;
The following packages are affected: cdf&lt;br /&gt;
MSVC++ accepts both inline and _inline BUT when the code is *.c and compiled with MSVC, then it only recognize _inline.&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Error Messages are like:&lt;br /&gt;
Error&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;1&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;error C2054: expected '(' to follow 'inline'&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;...\specfunc\cheb_eval_mode.c&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;
Error&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;2&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;error C2085: 'cheb_eval_mode_e' : not in formal parameter list&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; ...\specfunc\cheb_eval_mode.c&lt;br /&gt;
Error&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;3&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;error C2143: syntax error : missing ';' before '{'&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;...\specfunc\cheb_eval_mode.c&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;6&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Solution:&lt;br /&gt;
In specfun/cheb_eval_mode.c, airy.c , gamma.c, bessel.c, bessel_olver, bessel_zero, coupling.c, ellint.c&lt;br /&gt;
erfc.c, legendre_con, trig.c, zeta.c&lt;br /&gt;
change from inline to _inline&lt;br /&gt;
&lt;br /&gt;
16. Notes on cdf and specfun packages.&lt;br /&gt;
- see 15. for "inline" issue&lt;br /&gt;
- Files to be renamed from *.c to *_cdf.c are:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;cdf/beta.c &amp;nbsp; to avoid clash with specfun/beta.c&lt;br /&gt;
- files to be excluded from compile:&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;cdf/beta_inc.c&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;17. Add randist package - needed by cdf&lt;br /&gt;
&amp;nbsp;- inline keyword modified, see note 15; for files:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;binomial_tpe.c, discrete.c, shuffle.c&lt;br /&gt;
&amp;nbsp;- Files to be renamed from *.c to *_randist.c are:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;beta.c, binomial.c, cauchy.c, chisq.c, exponential.c, exppow.c, fdist.c, flat.c, gamma.c,&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; gauss.c, geometric.c, hyperg.c, laplace.c, logistic.c, lognormal.c, nbinomial.c, pareto.c, pascal.c, poisson.c, rayleigh.c, rdist.c, weibull.c&lt;br /&gt;
&lt;br /&gt;
18. Add rng package - needed by randist&lt;br /&gt;
&amp;nbsp;- inline keyword modified, see note 15; for files:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;... almost all files ...&lt;br /&gt;
&amp;nbsp;- Files to be renamed from *.c to *_rng.c are:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;file.c&lt;br /&gt;
&lt;br /&gt;
19. Add complex package - needed by specfun&lt;br /&gt;
&amp;nbsp;- Files to be renamed from *.c to *_complex.c are: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;inline.c&lt;br /&gt;
&lt;br /&gt;
20. Add eigen package - needed by specfun&lt;br /&gt;
&amp;nbsp;- inline keyword modified, see note 15; for files:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;gen.c, francis.c, qrstep.c, jacobi.c,&lt;br /&gt;
- Remove &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //#include &lt;gsl gsl_cblas.h=""&gt;&lt;/gsl&gt;&lt;br /&gt;
&amp;nbsp; and replace by &amp;nbsp; &amp;nbsp; #include &lt;mkl_cblas.h&gt;&lt;/mkl_cblas.h&gt;&lt;br /&gt;
&amp;nbsp; in these files: &amp;nbsp; &amp;nbsp;francis.c, nonsymmv.c&lt;br /&gt;
- exclude from project:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; qrstep.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
21. Add linalg package - needed by&lt;br /&gt;
&amp;nbsp;- inline keyword modified, see note 15; for files:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;apply_givens.c, cholesky.c, givens.c, exponential.c&lt;br /&gt;
- exclude from project:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;apply_givens.c, givens.c, svdstep.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
22. Add permutation package - needed by linalg&lt;br /&gt;
&amp;nbsp;- inline keyword modified, see note 15; for files:&lt;br /&gt;
&amp;nbsp;- Files to be renamed from *.c to *_permutation.c are: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; file.c, init.c, inline.c, &lt;br /&gt;
- exclude from project:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; permute_source.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add integration package - needed by randist&lt;br /&gt;
&amp;nbsp;- inline keyword modified, see note 15; for files:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; append.c, initialise.c, positivity.c, set_initial.c, qpsrt.c, util.c, reset.c, qelg.c,&lt;br /&gt;
&amp;nbsp;- Files to be renamed from *.c to *_integration .c are: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
- exclude from project:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;append.c, cquad_const.c, err.c, initialise.c, positivity.c, ptsort.c, qpsrt.c, util.c, reset.c&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; qelg.c, qc25c.c, qc25f.c, qc25s.c, qpsrt2.c, set_initial.c,&lt;br /&gt;
&lt;br /&gt;
NOTE: if some *.c files which are included by other *.c files are NOT excluded from compile, then errors like these occur:&lt;br /&gt;
Error&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;1&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;error C2143: syntax error : missing ')' before '*'&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;
Error&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;2&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;error C2143: syntax error : missing '{' before '*'&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;
Error&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;3&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;error C2059: syntax error : 'type'&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;
Error&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;4&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;error C2059: syntax error : ')'&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add sort package - needed by eigen&lt;br /&gt;
&amp;nbsp;- inline keyword modified, see note 15; for files:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;sort.c, sortind.c, sortvec_source.c, sortvecind_source.c,&lt;br /&gt;
&amp;nbsp;- Files to be renamed from *.c to *_sort.c are: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
- exclude from project:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;sortvec_source.c, sortvecind_source.c, subset_source.c, &amp;nbsp;subsetind_source.c,&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; test_heapsort.c, test_source.c,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add min package - for minimization routines&lt;br /&gt;
- &amp;nbsp;Add static to these functions:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; min/test.c::my_error_handler()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add roots package&lt;br /&gt;
&amp;nbsp;- inline keyword modified, see note 15; for files:&lt;br /&gt;
&amp;nbsp;- Files to be renamed from *.c to *_roots.c are: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; test.c, test_funcs.c&lt;br /&gt;
- exclude from project:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add multimin package&lt;br /&gt;
&amp;nbsp;- inline keyword modified, see note 15; for files:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; simplex2.c&lt;br /&gt;
&amp;nbsp;- Files to be renamed from *.c to *_multimin.c are:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; test.c, test_funcs.c&lt;br /&gt;
- exclude from project:&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;directional_minimize.c, linear_minimize.c, linear_wrapper.c,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add poly package - needed by multimin&lt;br /&gt;
&amp;nbsp;- inline keyword modified, see note 15; for files:&lt;br /&gt;
&amp;nbsp;- Files to be renamed from *.c to *_multimin.c are:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; test.c, eval.c, deriv.c,&lt;br /&gt;
- exclude from project:&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;companion.c, balance.c, qr.c,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add multiroots package&lt;br /&gt;
&amp;nbsp;- inline keyword modified, see note 15; for files:&lt;br /&gt;
&amp;nbsp;- Files to be renamed from *.c to *_multiroots.c are:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; convergence.c, fdfsolver.c, fsolver, newton.c, test_funcs.c, test.c&lt;br /&gt;
- exclude from project:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; enorm.c, dogleg.c&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
23. To make use of GSL's own test, do the following to the selected GSL packages as needed:&lt;br /&gt;
cdf, specfunc, rng, randist, min, roots, multimin, poly,&lt;br /&gt;
&lt;br /&gt;
- eg. in cdf/test.c &amp;nbsp;(which has been renamed to test_cdf.c), rename the function&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;main &amp;nbsp; &amp;nbsp; &amp;nbsp;to &amp;nbsp; &amp;nbsp;main_cdf.c &lt;br /&gt;
&lt;br /&gt;
- ensure say, cdf/test.c &amp;nbsp;is now included in the project and compile.&lt;br /&gt;
&lt;br /&gt;
- for the test functions, say: void main_cdf(void)&lt;br /&gt;
&amp;nbsp; put its prototype function in your own driver program using extern, like:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;extern "C" { void main_cdf(void); &amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
- in the main functions, say main_cdf(), at the last line of the function, change this:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;exit(gsl_test_summary());&lt;br /&gt;
&amp;nbsp; to this, to return the EXIT_SUCCESS or EXIT_FAILURE code&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;return gsl_test_summary();&lt;br /&gt;
&lt;br /&gt;
- in the main functions, say main_sf(), if there are arguments that are not used like this:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;int main_sf(int argc, char * argv[])&lt;br /&gt;
&amp;nbsp; to the following&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;int main_sf(void)&lt;br /&gt;
&lt;br /&gt;
- in cdf package ONLY: in file test_cdf.c, change the line from:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;void test_gamma (void)&lt;br /&gt;
&amp;nbsp; to rename it to:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;void test_gamma_cdf (void)&lt;br /&gt;
&amp;nbsp; and in the same file, change the call to the test_gamma function from:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;test_gamma();&lt;br /&gt;
&amp;nbsp; to the new name :&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;test_gamma_cdf();&lt;br /&gt;
&amp;nbsp; This is done to prevent clash with a function of the same name test_gamma() in specfunc.&lt;br /&gt;
&lt;br /&gt;
- in randist package only, change the following functions by adding the keyword "static",&lt;br /&gt;
&amp;nbsp; so that other files to not uses these functions. The functions made "static" are:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;test_beta, test_binomial_pdf, test_chisq, test_exponential, test_fdist, test_gamma,&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; test_ugaussian, test_geometric_pdf, test_hypergeometric2_pdf, test_negative_binomial_pdf,&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; test_pascal_pdf, test_poisson_pdf&lt;br /&gt;
&lt;br /&gt;
- in roots package only, change the following functions by adding the keyword "static",&lt;br /&gt;
&amp;nbsp; so that other files to not uses these functions. The functions / variables made "static" are:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;test_roots.c: EPSREL, EPSABS, MAX_ITERATIONS, test_f, test_f_e, my_error_handler,&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; test_funcs_roots.c: create_function, func1, func2, func3, func4&lt;br /&gt;
&lt;br /&gt;
- in multimin package only, change the following functions by adding the keyword "static",&lt;br /&gt;
&amp;nbsp; so that other files to not uses these functions. The functions / variables made "static" are:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;test_fdf, test_f,&lt;br /&gt;
&lt;br /&gt;
- in multiroots package only, change the following functions by adding the keyword "static",&lt;br /&gt;
&amp;nbsp; so that other files to not uses these functions. The functions / variables made "static" are:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;test_multiroots.c: test_fdf, test_f,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;test_funcs_multiroots.c:&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; rosenbrock, rosenbrock_initpt, rosenbrock_f, rosenbrock_df, rosenbrock_fdf,&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; wood, wood_initpt, wood_f, wood_df, wood_fdf,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;roth, roth_initpt, roth_f, roth_df, roth_fdf,&lt;br /&gt;
&lt;br /&gt;
- Strange reason, the two functions gsl_cdf_logistic_Q and &amp;nbsp;gsl_cdf_logistic_P are not visible to the test program and cannot be compiled. Typical error messages are:&lt;br /&gt;
Error 1 &amp;nbsp;error LNK2001: unresolved external symbol gsl_cdf_logistic_Q&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;test_cdf.obj&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;vcpp_gsl&lt;br /&gt;
Error 1 &amp;nbsp;error LNK2019: unresolved external symbol gsl_cdf_logistic_Q&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;test_cdf.obj&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;vcpp_gsl&lt;br /&gt;
&amp;nbsp; &amp;nbsp; to solve this problem, go to the file cdf/logistic.c and copy the two functions of&lt;br /&gt;
gsl_cdf_logistic_Q and &amp;nbsp;gsl_cdf_logistic_P&lt;br /&gt;
&amp;nbsp; &amp;nbsp; and paste it to cdf/test_auto.c and place it above the line:&lt;br /&gt;
void test_auto_logistic (void)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ALTERNATIVE: Better solution is to check no two source files has the same name. This is already described in point 15. When two files have same name, one of them is not compiled and so its functions cannot be found.&lt;br /&gt;
&lt;br /&gt;
- other files where functions are already identified somewhere else in test*.c. The solution is to add the static keyword to these functions:&lt;br /&gt;
&amp;nbsp; &amp;nbsp;test_integration.c: my_error_handler&lt;br /&gt;
&amp;nbsp; &amp;nbsp;test_linalg.c: my_error_handler&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Debugging:&lt;br /&gt;
Modified test_roots.c: void test_f, test\results.c: void gsl_test()&lt;br /&gt;
Completed [12017/12017]&lt;br /&gt;
GSL cdf test result is 0&lt;br /&gt;
&amp;nbsp;end of gsl cdf test&lt;br /&gt;
Completed [14995/14995]&lt;br /&gt;
GSL specfunc test result is 0&lt;br /&gt;
&amp;nbsp;end of gsl specfunc test&lt;br /&gt;
-10, 1072693247, 0, 0&lt;br /&gt;
FAIL: results.c::gsl_test:: [15003]incorrect precision (%g obs vs %g expected)&lt;br /&gt;
-16, 1072693247, -350469331, 1058682594&lt;br /&gt;
FAIL: results.c::gsl_test:: [15005]incorrect precision (%g obs vs %g expected)&lt;br /&gt;
2142418408, 1061077358, 0, 0&lt;br /&gt;
FAIL: results.c::gsl_test:: [15007]incorrect precision (%g obs vs %g expected)&lt;br /&gt;
-13, 1072693247, -350469331, 1058682594&lt;br /&gt;
FAIL: results.c::gsl_test:: [15020]incorrect precision (%g obs vs %g expected)&lt;br /&gt;
2142401953, 1061077358, 0, 0&lt;br /&gt;
FAIL: results.c::gsl_test:: [15022]incorrect precision (%g obs vs %g expected)&lt;br /&gt;
-10, 1072693247, 0, 0&lt;br /&gt;
FAIL: results.c::gsl_test:: [15034]incorrect precision (%g obs vs %g expected)&lt;br /&gt;
-13, 1072693247, -350469331, 1058682594&lt;br /&gt;
FAIL: results.c::gsl_test:: [15036]incorrect precision (%g obs vs %g expected)&lt;br /&gt;
2142401953, 1061077358, 0, 0&lt;br /&gt;
FAIL: results.c::gsl_test:: [15038]incorrect precision (%g obs vs %g expected)&lt;br /&gt;
FAIL: results.c::gsl_test:: [15064]%s, %s (%g obs vs %g expected)&lt;br /&gt;
FAIL: results.c::gsl_test:: [15065]exceeded maximum number of iterations&lt;br /&gt;
FAIL: results.c::gsl_test:: [15066]incorrect precision (%g obs vs %g expected)&lt;br /&gt;
FAIL: results.c::gsl_test:: [15068]incorrect precision (%g obs vs %g expected)&lt;br /&gt;
FAIL: results.c::gsl_test:: [15070]incorrect precision (%g obs vs %g expected)&lt;br /&gt;
FAIL: results.c::gsl_test:: [15072]%s, %s&lt;br /&gt;
GSL roots test result is 1&lt;br /&gt;
&amp;nbsp;end of gsl roots test&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GSL Examples&lt;br /&gt;
================&lt;br /&gt;
http://apwillis.staff.shef.ac.uk/aco/freesoftware.html &amp;nbsp;- passing function as argument&lt;br /&gt;
http://www.helsinki.fi/~fyl_tlpk/luento/ohj-13-GSL-e.html - passing function as argument&lt;br /&gt;
Fortran GSL&lt;br /&gt;
http://www.lrz.de/services/software/mathematik/gsl/fortran/index.html&lt;br /&gt;
http://uncwddas.googlecode.com/svn/trunk/other/gsl-1.8/gsl.vc/gsl.vc8.readme.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GSL Considerations&lt;br /&gt;
===================&lt;br /&gt;
32-64 bit&lt;br /&gt;
cblas replace with blas - can used ATLAS (C) at least&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build GSL with MinGW&lt;br /&gt;
========================&lt;br /&gt;
MSVC and MinGW Dlls - shows how to build Dll using MinGW that can be used by MSVC&lt;br /&gt;
http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs&lt;br /&gt;
&lt;br /&gt;
GSL can be build using MinGW with the following commands:&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;configure&lt;br /&gt;
OR &amp;nbsp;to just make a dynamic library without static lib;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;./configure --enable-static=no&lt;br /&gt;
then&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; make&lt;br /&gt;
&lt;br /&gt;
In general, to specify on conditions and macro definitions:&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;env CPPFLAGS="-DGSL_DLL" &amp;nbsp;./configure --enable-static=no&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;./configure --enable-static=no CPPFLAGS="-DGSL_DLL"&lt;br /&gt;
Don't need to add GSL_DLL definition - this is just an exmaple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The result is are the following files:&lt;br /&gt;
in [gsl]\cblas\.libs: &amp;nbsp;libgslcblas.dll.a, libgslcblas.a, libgslcblas-0.dll, libgslcblas.la, libgslcblas.lai&lt;br /&gt;
in [gsl]\libs: libgsl.dll.a, libgsl.a, libgsl-0.dll, libgsl.la, libgsl.lai&lt;br /&gt;
&lt;br /&gt;
If there are errors during MAKE, like these:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; infnan.c:98:3: error: #error "cannot define gsl_finite without HAVE_DECL_FINITE or HAVE_IEEE_COMPARISONS"&lt;br /&gt;
&amp;nbsp; &amp;nbsp; infnan.c:115:3: error: #error "cannot define gsl_isnan without HAVE_DECL_ISNAN or HAVE_IEEE_COMPARISONS"&lt;br /&gt;
to solve this, go into [gsl]\config.h &amp;nbsp;and remove the UNDEF lines and add DEFINE lines like:&lt;br /&gt;
&amp;nbsp; &amp;nbsp;//#undef HAVE_DECL_ISFINITE&lt;br /&gt;
&amp;nbsp; &amp;nbsp;#define HAVE_DECL_ISFINITE 1&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;//#undef HAVE_DECL_ISNAN&lt;br /&gt;
&amp;nbsp; &amp;nbsp;#define HAVE_DECL_ISNAN 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make GSL compatible with MSVC(Microsoft Visual C), then edit gsl_types.h file, to ensure that the following line is defined:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
Run-Time Check Failure #0 - The value of ESP was not properly saved&lt;br /&gt;
across a function call. &amp;nbsp;This is usually a result of calling a function&lt;br /&gt;
declared with one calling convention with a function pointer declared&lt;br /&gt;
with a different calling convention.&lt;br /&gt;
&lt;br /&gt;
The message above about calling convention is misleading. The gsl dll may be in the right calling convention already. The caller to the functions in gsl need to specify explicitly&lt;br /&gt;
&amp;nbsp; &amp;nbsp; __cdel(dllimport)&lt;br /&gt;
on the prototype for the function they need to call.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Running MSVC with minGW-built-GSL&lt;br /&gt;
===================================&lt;br /&gt;
First, built the GSL using MinGW as described in "Build GSL with MinGW" section.&lt;br /&gt;
Then,&lt;br /&gt;
To LINK with MSVC, use the *.dll.a, but rename them to *.lib&lt;br /&gt;
To RUN with MSVS, put the *-0.dll files into the runtime path.&lt;br /&gt;
&lt;br /&gt;
Error Message when running&lt;br /&gt;
"Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. &amp;nbsp;This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention."&lt;br /&gt;
&lt;br /&gt;
..... need to check calling conventions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aside: To convert MSVC *.lib into *.a for GNU/GCC in MinGW, use the tool called "reimp".&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GSL Makefile&lt;br /&gt;
=============&lt;br /&gt;
some key definitions of the Makefile is below.&lt;br /&gt;
&lt;br /&gt;
$(SHELL) $(top_builddir)/libtool&lt;br /&gt;
&lt;br /&gt;
libgsl.la: $(libgsl_la_OBJECTS) $(libgsl_la_DEPENDENCIES)&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;$(libgsl_la_LINK) -rpath $(libdir) $(libgsl_la_OBJECTS) $(libgsl_la_LIBADD) $(LIBS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
92:&lt;br /&gt;
libgsl_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;$(libgsl_la_LDFLAGS) $(LDFLAGS) -o $@&lt;br /&gt;
294:&lt;br /&gt;
libdir = ${exec_prefix}/lib&lt;br /&gt;
343:&lt;br /&gt;
libgsl_la_LIBADD = $(SUBLIBS) $(am__append_1)&lt;br /&gt;
233:&lt;br /&gt;
LIBS = -lm&lt;br /&gt;
234:&lt;br /&gt;
LIBTOOL = $(SHELL) $(top_builddir)/libtool&lt;br /&gt;
112:&lt;br /&gt;
CCLD = $(CC)&lt;br /&gt;
184:&lt;br /&gt;
CFLAGS = -g -O2&lt;br /&gt;
344:&lt;br /&gt;
libgsl_la_LDFLAGS = -version-info $(GSL_LT_VERSION) $(am__append_2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
90:&lt;br /&gt;
am_libgsl_la_OBJECTS = version.lo&lt;br /&gt;
libgsl_la_OBJECTS = $(am_libgsl_la_OBJECTS)&lt;br /&gt;
&lt;br /&gt;
88:&lt;br /&gt;
libgsl_la_DEPENDENCIES = $(SUBLIBS) $(am__append_1)&lt;br /&gt;
43:&lt;br /&gt;
am__append_1 = cblas/libgslcblas.la&lt;br /&gt;
44:&lt;br /&gt;
am__append_2 = -no-undefined&lt;br /&gt;
315:&lt;br /&gt;
SUBLIBS = block/libgslblock.la blas/libgslblas.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;bspline/libgslbspline.la complex/libgslcomplex.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;cheb/libgslcheb.la dht/libgsldht.la diff/libgsldiff.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;deriv/libgslderiv.la eigen/libgsleigen.la err/libgslerr.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;fft/libgslfft.la fit/libgslfit.la histogram/libgslhistogram.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;ieee-utils/libgslieeeutils.la integration/libgslintegration.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;interpolation/libgslinterpolation.la linalg/libgsllinalg.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;matrix/libgslmatrix.la min/libgslmin.la monte/libgslmonte.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;multifit/libgslmultifit.la multimin/libgslmultimin.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;multiroots/libgslmultiroots.la ntuple/libgslntuple.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;ode-initval/libgslodeiv.la ode-initval2/libgslodeiv2.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;permutation/libgslpermutation.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;combination/libgslcombination.la multiset/libgslmultiset.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;poly/libgslpoly.la qrng/libgslqrng.la randist/libgslrandist.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;rng/libgslrng.la roots/libgslroots.la siman/libgslsiman.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;sort/libgslsort.la specfunc/libgslspecfunc.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;statistics/libgslstatistics.la sum/libgslsum.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;sys/libgslsys.la test/libgsltest.la utils/libutils.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;vector/libgslvector.la cdf/libgslcdf.la \&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;wavelet/libgslwavelet.la&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sample of actual output in Make:&lt;br /&gt;
&lt;br /&gt;
libtool: link: ln .libs/libgsl.lax/libgslcdf.a/fdist.o .libs/libgsl.lax/lt72-fdist.o || cp .libs/libgsl.lax/libgslcdf.a/fdist.o .libs/libgsl.lax/lt72-fdist.o&lt;br /&gt;
libtool: link: ln .libs/libgsl.lax/libgslcdf.a/flat.o .libs/libgsl.lax/lt73-flat.o || cp .libs/libgsl.lax/libgslcdf.a/flat.o .libs/libgsl.lax/lt73-flat.o&lt;br /&gt;
libtool: link: ln .libs/libgsl.lax/libgslcdf.a/gamma.o .libs/libgsl.lax/lt74-gamma.o || cp .libs/libgsl.lax/libgslcdf.a/gamma.o .libs/libgsl.lax/lt74-gamma.o&lt;br /&gt;
libtool: link: ln .libs/libgsl.lax/libgslcdf.a/gauss.o .libs/libgsl.lax/lt75-gauss.o || cp .libs/libgsl.lax/libgslcdf.a/gauss.o .libs/libgsl.lax/lt75-gauss.o&lt;br /&gt;
libtool: link: ln .libs/libgsl.lax/libgslcdf.a/geometric.o .libs/libgsl.lax/lt76-geometric.o || cp .libs/libgsl.lax/libgslcdf.a/geometric.o .libs/libgsl.lax/lt76-geometric.o&lt;br /&gt;
libtool: link: ln .libs/libgsl.lax/libgslcdf.a/laplace.o .libs/libgsl.lax/lt77-laplace.o || cp .libs/libgsl.lax/libgslcdf.a/laplace.o .libs/libgsl.lax/lt77-laplace.o&lt;br /&gt;
libtool: link: ln .libs/libgsl.lax/libgslcdf.a/logistic.o .libs/libgsl.lax/lt78-logistic.o || cp .libs/libgsl.lax/libgslcdf.a/logistic.o .libs/libgsl.lax/lt78-logistic.o&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
General C define macros and typedef&lt;br /&gt;
=====================================&lt;br /&gt;
#define [dummy] [real text]&lt;br /&gt;
eg.&lt;br /&gt;
# define __BEGIN_DECLS extern "C" {&lt;br /&gt;
&lt;br /&gt;
this means whenever the "__BEGIN_DECLS" is used in the code, the pre-processor will replace it with:&lt;br /&gt;
extern "C" {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
typedef [type] [alias]&lt;br /&gt;
eg.&lt;br /&gt;
&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;/* type declaration */&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;typedef struct {&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;int number;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;char *text;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;} LINE;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;/* Variable declaration */&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;LINE buffer[MAXLINES];&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note the actual type, like the struct above, is declared first, followed by the last word which is the alias LINE.&lt;br /&gt;
BUT, this is reverse for #define where the actual alias or dummy is the first word, then the rest are the real text.&lt;br /&gt;
&lt;br /&gt;
An alternative way to declare a struct using "tag" is:&lt;br /&gt;
&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;/* type declaration */&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;struct templ {&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;int number;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;char *text;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;} ;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;/* Variable declaration */&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;struct templ buffer[MAXLINES];&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that using the tag method for struct, the keyword struct still need to be included in the declaration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GSL-C-Fortran Framework&lt;br /&gt;
=======================&lt;br /&gt;
1. Compile the GSL into a library with vcpp_gsl.lib|.bin, see "Building using Visual Studio C/C++"&lt;br /&gt;
2. Create a wrapper C++ project, say gslCwrap.&lt;br /&gt;
3. Create a header file gslCwrap.h and code file gslCwrap.c&lt;br /&gt;
4. In the header file gslCwrap.h&lt;br /&gt;
a) prepare to export the wrappers.&lt;br /&gt;
&lt;br /&gt;
extern "C"{&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;__declspec(dllexport) void cdfGaussP (double x, double *p);&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;__declspec(dllexport) void fnGamma (double x, double *gamma);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
b) include reference to GSL header like and call gsl function:&lt;br /&gt;
&lt;br /&gt;
#include "gsl/gsl_cdf.h"&lt;br /&gt;
#include "gsl/gsl_sf_gamma.h"&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;void cdfGaussP (double x, double *p) { &amp;nbsp; &amp;nbsp; &amp;nbsp;*p = &amp;nbsp;gsl_cdf_ugaussian_P(x); }// 2 * x; &amp;nbsp;}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;void fnGamma (double x, double *gamma) { &amp;nbsp; &amp;nbsp;*gamma = gsl_sf_gamma(x); }&lt;br /&gt;
&lt;br /&gt;
the actual gsl function names used here are: gsl_cdf_ugaussian_P, gsl_sf_gamma&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. To call from Fortran, prepare a Fortran interface:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; interface&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SUBROUTINE cdfGauss_P(x, P) &amp;nbsp;BIND(C, NAME='cdfGaussP')&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; USE, INTRINSIC :: ISO_C_BINDING &amp;nbsp; &amp;nbsp; ! New Fortran 2003 standard&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IMPLICIT NONE&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; REAL(C_DOUBLE), VALUE :: x&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; REAL(C_DOUBLE) :: P&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END SUBROUTINE cdfGauss_P&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SUBROUTINE fnGamma(x, dGamma) &amp;nbsp;BIND(C, NAME='fnGamma')&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; USE, INTRINSIC :: ISO_C_BINDING &amp;nbsp; &amp;nbsp; ! New Fortran 2003 standard&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IMPLICIT NONE&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; REAL(C_DOUBLE), VALUE :: x&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; REAL(C_DOUBLE) :: dGamma&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END SUBROUTINE fnGamma&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;end interface&lt;br /&gt;
&lt;br /&gt;
6. In the Fortran code, just call the function as specified by the interface.&lt;br /&gt;
Eg.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; call fnGamma(vecX(ii), answ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;call cdfGauss_P(vecQ(ii), answ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are at least 3 projects involved here.&lt;br /&gt;
vcpp_gsl - this keeps the gsl code in its own project, so that it is independent of any change in interface or usage.&lt;br /&gt;
gslCwrap - this consist of the C wrappers so that it can be used by C code or Fortran code. It also transforms all gsl functions into VOID C functions so that it can be called as Fortran subroutines. Fortran Interface - this is freely linked to the gslCwrap wrapper code. There is no direct reference to the GSL code. &amp;nbsp;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-4965584264720610581?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-QGlcMB9XvYEwjqz_mx5guJSmR4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-QGlcMB9XvYEwjqz_mx5guJSmR4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-QGlcMB9XvYEwjqz_mx5guJSmR4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-QGlcMB9XvYEwjqz_mx5guJSmR4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/drxB_p6-pBM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/4965584264720610581/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=4965584264720610581" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/4965584264720610581?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/4965584264720610581?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/drxB_p6-pBM/notes-gsl.html" title="NOTES GSL" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/11/notes-gsl.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UCR304fyp7ImA9WhRREk8.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-5294129067796009368</id><published>2011-11-25T04:47:00.000-08:00</published><updated>2011-11-25T04:47:46.337-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-25T04:47:46.337-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Huawei IDEOS U8150" /><title>Notes Huawei IDEOS U8150</title><content type="html">Notes Huawei IDEOS U8150&lt;br /&gt;
&lt;br /&gt;
Upgrading from Android 2.2 to 2.3&lt;br /&gt;
&lt;a href="http://forums.whirlpool.net.au/archive/1700188"&gt;http://forums.whirlpool.net.au/archive/1700188&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://forum.xda-developers.com/showthread.php?p=12244110"&gt;http://forum.xda-developers.com/showthread.php?p=12244110&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-5294129067796009368?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3lVWTv5JFW3Qy3Fha0bA-miB-_A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3lVWTv5JFW3Qy3Fha0bA-miB-_A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3lVWTv5JFW3Qy3Fha0bA-miB-_A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3lVWTv5JFW3Qy3Fha0bA-miB-_A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/YqBYp9ElawI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/5294129067796009368/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=5294129067796009368" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/5294129067796009368?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/5294129067796009368?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/YqBYp9ElawI/notes-huawei-ideos-u8150.html" title="Notes Huawei IDEOS U8150" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/11/notes-huawei-ideos-u8150.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUENR3s7eCp7ImA9WhdXEUQ.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-4068530336562626987</id><published>2011-08-22T07:51:00.000-07:00</published><updated>2011-08-24T06:48:16.500-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-24T06:48:16.500-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Puppy Linux" /><title>Notes Puppy Linux</title><content type="html">How to Connect to Hidden Wireless Network in Puppy Linux&lt;br /&gt;
&lt;a href="http://forums.opensuse.org/english/get-technical-help-here/how-faq-forums/unreviewed-how-faq/459097-howto-connect-hidden-ssid-opensuse-11-4-kde-4-6-a.html"&gt;http://forums.opensuse.org/english/get-technical-help-here/how-faq-forums/unreviewed-how-faq/459097-howto-connect-hidden-ssid-opensuse-11-4-kde-4-6-a.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Security on Puppy Linux&lt;br /&gt;
&lt;a href="http://puppylinux.org/wikka/security"&gt;http://puppylinux.org/wikka/security&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Puppy root is&amp;nbsp;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span class="postbody" style="font-size: 12px; line-height: 18px;"&gt;woofwoof&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Linux sata drivers&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://linuxmafia.com/faq/Hardware/sata.html#via6421"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;http://linuxmafia.com/faq/Hardware/sata.html#via6421&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-4068530336562626987?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eO5BVk-nuZWLyQCeeozPICuyan0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eO5BVk-nuZWLyQCeeozPICuyan0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eO5BVk-nuZWLyQCeeozPICuyan0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eO5BVk-nuZWLyQCeeozPICuyan0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/RZHXotdlbM4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/4068530336562626987/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=4068530336562626987" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/4068530336562626987?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/4068530336562626987?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/RZHXotdlbM4/notes-puppy-linux.html" title="Notes Puppy Linux" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/08/notes-puppy-linux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQDSHs7eip7ImA9WhdQF0w.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-7736667573664512501</id><published>2011-08-18T17:06:00.000-07:00</published><updated>2011-08-18T17:06:19.502-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-18T17:06:19.502-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mobile Protection" /><category scheme="http://www.blogger.com/atom/ns#" term="Mobile Antispyware" /><category scheme="http://www.blogger.com/atom/ns#" term="Mobile Security" /><category scheme="http://www.blogger.com/atom/ns#" term="Mobile Antivirus" /><category scheme="http://www.blogger.com/atom/ns#" term="smartphone" /><title>Links to Smartphone Mobile Security Software</title><content type="html">This is a collection of links to&amp;nbsp;Smartphone Mobile Security Software&lt;br /&gt;
&lt;br /&gt;
Kaspersky Mobile Security&lt;br /&gt;
&lt;a href="https://www.kasperskyanz.com.au/kaspersky_mobile_security"&gt;https://www.kasperskyanz.com.au/kaspersky_mobile_security&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Bullguard Mobile Security&lt;br /&gt;
&lt;a href="http://www.bullguard.com/why/bullguard-mobile-security-10.aspx"&gt;http://www.bullguard.com/why/bullguard-mobile-security-10.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
F-Secure&amp;nbsp;Mobile Security&lt;br /&gt;
&lt;a href="http://www.f-secure.com/en/web/home_global/protection/mobile-security/features-benefits"&gt;http://www.f-secure.com/en/web/home_global/protection/mobile-security/features-benefits&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
NetQin Mobile Security&lt;br /&gt;
&lt;a href="http://www.netqin.com/en/antivirus/"&gt;http://www.netqin.com/en/antivirus/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-7736667573664512501?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sZeHHVmhHTiKDOFL8NG4HMhUqYw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sZeHHVmhHTiKDOFL8NG4HMhUqYw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sZeHHVmhHTiKDOFL8NG4HMhUqYw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sZeHHVmhHTiKDOFL8NG4HMhUqYw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/1AMWEG59lzg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/7736667573664512501/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=7736667573664512501" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/7736667573664512501?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/7736667573664512501?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/1AMWEG59lzg/links-to-smartphone-mobile-security.html" title="Links to Smartphone Mobile Security Software" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/08/links-to-smartphone-mobile-security.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIDQ3k6eSp7ImA9WhRbEU0.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-4511458480775413286</id><published>2011-08-18T16:43:00.000-07:00</published><updated>2012-02-01T06:29:32.711-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-01T06:29:32.711-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="RSA" /><category scheme="http://www.blogger.com/atom/ns#" term="malware" /><category scheme="http://www.blogger.com/atom/ns#" term="Security News" /><category scheme="http://www.blogger.com/atom/ns#" term="Mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="droid" /><category scheme="http://www.blogger.com/atom/ns#" term="antivirus" /><category scheme="http://www.blogger.com/atom/ns#" term="spyware" /><title>News - Security</title><content type="html">&lt;div style="margin: 0px;"&gt;
&lt;br /&gt;
&lt;a href="http://www.nytimes.com/2012/01/26/technology/personaltech/protecting-a-cellphone-against-hackers.html"&gt;&lt;span style="font-size: large;"&gt;&lt;strong&gt;Build Up Your Phone’s Defenses Against Hackers&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;By KATE MURPHY&lt;br /&gt;January 25, 2012&lt;br /&gt;"Chuck Bokath would be terrifying if he were not such a nice guy. A jovial senior engineer at the Georgia Tech Research Institute in Atlanta, Mr. Bokath can hack into your cellphone just by dialing the number. He can remotely listen to your calls, read your text messages, snap pictures with your phone’s camera and track your movements around town — not to mention access the password to your online bank account."&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;strong&gt;&lt;a href="http://www.scmagazine.com.au/News/288198,pcanywhere-code-stolen-symantec-warns-of-exploits.aspx"&gt;PcAnywhere code stolen, Symantec warns of exploits&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;By Dan Kaplan on Jan 26, 2012 12:08 PM&lt;br /&gt;
"Company recommends to stop using its product pending fixes.&lt;br /&gt;
Symantec is advising users of its pcAnywhere remote access product to disable the software if they don't absolutely need it.&lt;br /&gt;
Warnings come amid confirmation by the security giant that hackers stole a portion of the company's source code dating back to 2006.&lt;br /&gt;
The code related to the 2006 versions of Norton Antivirus Corporate Edition, Norton Internet Security, Norton SystemWorks and pcAnywhere."&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.crn.com.au/News/288438,symantec-finds-huge-android-malware-infection.aspx"&gt;&lt;strong&gt;&lt;span style="font-size: large;"&gt;Symantec finds huge Android malware infection&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Antone Gonsalves on Jan 30, 2012 &lt;br /&gt;
"Up to 5 million smartphone users at risk.&lt;br /&gt;
Symantec has found a massive Android malware infection in which several million smartphone users downloaded from the Android Market a Trojan capable of stealing information and displaying advertising.&lt;br /&gt;
The security vendor discovered the malware, called Android Counterclank, in 13 apps with titles such as "Counter Ground Force," "Heart Live Wallpaper" and "Sexy Girls Puzzle." The malware has the ability to receive commands from a remote server and to steal information, Symantec reported Friday."&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.smh.com.au/it-pro/security-it/cyber-criminals-launch-underground-search-engine-20120123-1qd9z.html"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;strong&gt;Cyber criminals launch underground search engine&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
Brian Krebs &amp;nbsp;January 24, 2012 - 7:58AM&lt;br /&gt;
"Australian stolen credit card details in search results.&lt;br /&gt;
A new service aims to be the Google search of underground websites, connecting scammers to a vast sea of web forums that offer an array of dodgy goods and services, from stolen credit card numbers to identity information and anonymity tools."&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://blog.andrewcantino.com/blog/2011/12/14/hacking-google-for-fun-and-profit/"&gt;&lt;strong&gt;&lt;span style="font-size: large;"&gt;Hacking Google for Fun and Profit&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
&lt;em&gt;Posted by Andrew Cantino Dec 14th, 2011&lt;/em&gt;&lt;br /&gt;
In my opinion, this is the most subtle, but also the most disturbing, of the three bugs. As with the other bugs that I found, this was an example of Cross Site Request Forgery- the practice of convincing a user’s browser to make a request on their behalf to a remote server. This type of attack generally only works when the user is logged in to the remote service. In this case, if a user is already logged into Gmail (and they usually are), a malicious website could make a series of requests for Gmail profile images and, based on the return codes, determine whether or not the visitor had communicated with another Gmail user. This worked because Gmail, as a well-intentioned privacy measure, would only show profile images to a viewer if they had had mutual contact. &lt;a href="http://blog.andrewcantino.com/blog/2011/12/14/hacking-google-for-fun-and-profit/"&gt;Here is some example code that worked at the time:&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.crn.com.au/News/283083,malicious-apps-discovered-in-android-market.aspx"&gt;&lt;strong&gt;&lt;span style="font-size: large;"&gt;Malicious apps discovered in Android Market&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
&lt;em&gt;By Angela Moscaritolo on Dec 13, 2011 8:31 AM &lt;/em&gt;Malicious devs lose registration but still turn a profit.&lt;br /&gt;
Large numbers of malware-laden popular apps such as Angry Birds have hit Google's official Android Market.&lt;br /&gt;
A rogue developer with the handle “Lagostrod” uploaded infected versions of at least a dozen popular games, including Cut the Rope, Need for Speed: Shift, and Assassin's Creed: Revelations, F-Secure researcher Sean Sullivan said.&lt;br /&gt;
After being notified of the issue, Google removed the apps and suspended the developers' accounts.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: large;"&gt;&lt;a href="http://www.itnews.com.au/News/282221,phone-porting-used-to-unlock-net-banking-codes.aspx/0"&gt;Phone porting used to unlock net banking codes&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
By Brett Winterford on Dec 6, 2011 &lt;br /&gt;
The scam is sophisticated, as one recent example illustrates.&lt;br /&gt;
George Craig*, a small business owner from Sydney’s Northern Beaches, received a call on his home phone from the Commonwealth Bank in mid-July.&lt;br /&gt;
He was told that his mortgage account had been accessed by fraudsters, who had funnelled out some $45,000. And his mobile phone – which hadn’t rang off the hook as it usually did during business hours – was used as a tool in the attack.&lt;br /&gt;
Craig cannot be 100 percent sure how his online bank account was compromised. He blames himself for conducting online banking sessions on a company laptop without adequate security software.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;a href="http://www.scmagazine.com.au/News/281191,four-ebay-scams-to-avoid.aspx"&gt;Four eBay scams to avoid&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
By Darren Pauli on Nov 28, 2011 10:00 AM&lt;br /&gt;
&lt;br /&gt;
It should be no surprise that auction site eBay is a target of fraudsters.&lt;br /&gt;
&lt;br /&gt;
With an arsenal of virtual credit cards, identity theft and social engineering, fraudsters with the will and persistence have long battled the security teams working to protect eBay's millions of buyers and sellers.&lt;br /&gt;
&lt;br /&gt;
But where other forms of online fraud have been dominated by Russian criminals, it is fraudsters operating from Romania that have caused the biggest headaches for the online auction mega site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://news.cnet.com/8301-27080_3-57326974-245/you-say-rootkit-i-say-diagnostic-tool/"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;You say 'rootkit,' I say 'diagnostic tool'&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
&lt;a href="http://news.cnet.com/8301-27080_3-57326974-245/you-say-rootkit-i-say-diagnostic-tool/"&gt;http://news.cnet.com/8301-27080_3-57326974-245/you-say-rootkit-i-say-diagnostic-tool/&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
&lt;br /&gt;
by Elinor Mills &amp;nbsp;November 17, 2011 3:15 PM PST&lt;br /&gt;
&lt;br /&gt;
"Android developer Trevor Eckhart recently noticed something odd on several EVO HTC devices: hidden software that phoned home to the carrier with details about how the phone was being used and where it was.&lt;br /&gt;
The software, Carrier IQ, tracked the location of the phone, what keys were pressed, which Web pages were visited, when calls were placed, and other information on how the device is used and when."&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.scmagazine.com.au/News/272314,certificate-phishing-sucks-bank-customers-into-blackhole.aspx"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Certificate phishing sucks bank customers into Blackhole&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
By Dan Raywood on Sep 19, 2011 12:50 PM&lt;br /&gt;
Bank business customers warned of invalid certificates.&lt;br /&gt;
&lt;br /&gt;
"Spammers are telling bank business customers that their SSL certificates had expired in efforts to exploit the blacklisting of certificate authority DigiNotar.&lt;br /&gt;
DigitNotar was blacklisted by major browsers after it was hacked and issued fraudulent certificates.&lt;br /&gt;
Barracuda Networks security researchers Dave Michmerhuizen and Luis Chapetti said the spam carried a dangerous message.&lt;br /&gt;
"The spammers try to create a sense of urgency with the hope that you will click one of the links to see what happens; which in this case is a particularly bad idea because the second link in the message directs the browser to a server hosting an exploit kit," they said."&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
&lt;a href="http://www.scmagazine.com.au/News/272046,android-malware-outsmarts-bank-security-steals-accounts.aspx"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Android malware outsmarts bank security, steals accounts&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
By Greg Masters on Sep 15, 2011 7:47 AM&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
Anti-virus won't detect it.&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
A variant of the SpyEye trojan dubbed SpitMo can steal bank account details and redirect transaction validation SMSes from Android phones.&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
SpitMo, or SpyEye for mobile, imposed templated fields on targeted banks' web pages requesting that customers fill in a mobile phone number and the international mobile equipment identity (IMEI) number of the device, a unique signature for a specific phone.&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
It meant criminals no longer needed to generate a certificate and issue an updated installer to snag the IMEI number, saving them up to three days.&lt;/div&gt;
&lt;br /&gt;
&lt;div style="margin: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;a href="http://www.computerworld.com/s/article/9219727/Hackers_steal_SSL_certificates_for_CIA_MI6_Mossad"&gt;Hackers steal SSL certificates for CIA, MI6, Mossad&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://www.computerworld.com/s/article/9219727/Hackers_steal_SSL_certificates_for_CIA_MI6_Mossad"&gt;http://www.computerworld.com/s/article/9219727/Hackers_steal_SSL_certificates_for_CIA_MI6_Mossad&lt;/a&gt;&lt;br /&gt;
By Gregg Keizer&lt;br /&gt;
September 4, 2011 05:35 PM ET15&lt;br /&gt;
"The Dutch government has since audited DigiNotar's performance and rescinded this assessment," Nightingale said. "This is not a temporary suspension, it is a complete removal from our trusted root program."&lt;br /&gt;
On Saturday, Piet Hein Donner, the Netherlands's Minister of the Interior, said the government could not guarantee the security of its websites because of the DigiNotar hack, and told citizens not to log into its sites until new certificates had been obtained from other sources.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.computerworld.com/s/article/9219569/Hackers_acquire_Google_certificate_could_hijack_Gmail_accounts"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Hackers acquire Google certificate, could hijack Gmail accounts&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.computerworld.com/s/article/9219569/Hackers_acquire_Google_certificate_could_hijack_Gmail_accounts"&gt;http://www.computerworld.com/s/article/9219569/Hackers_acquire_Google_certificate_could_hijack_Gmail_accounts&lt;/a&gt;&lt;br /&gt;
Repeat of Comodo affair last March; foreign government may be behind theft, says researcher&lt;br /&gt;
By Gregg Keizer, August 29, 2011 05:26 PM ET&lt;br /&gt;
&lt;br /&gt;
Hackers have obtained a digital certificate good for any Google website from a Dutch certificate provider, a security researcher said today.&lt;br /&gt;
Criminals could use the certificate to conduct "man-in-the-middle" attacks targeting users of Gmail, Google's search engine or any other service operated by the Mountain View, Calif. company.&lt;br /&gt;
"This is a wildcard for any of the Google domains," said Roel Schouwenberg, senior malware researcher with Kaspersky Lab, in an email interview Monday.&lt;br /&gt;
"[Attackers] could poison DNS, present their site with the fake cert and bingo, they have the user's credentials," said Andrew Storms, director of security operations at nCircle Security.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.scmagazine.com.au/News/267861,android-tops-mobile-hacking-charts.aspx"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;Android tops mobile hacking charts&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.scmagazine.com.au/News/267861,android-tops-mobile-hacking-charts.aspx"&gt;http://www.scmagazine.com.au/News/267861,android-tops-mobile-hacking-charts.aspx&lt;/a&gt;&lt;br /&gt;
By Tom Brewster on Aug 24, 2011 12:52 PM&lt;br /&gt;
Filed under Applications&lt;br /&gt;
But malware hasn't reached a tipping point.&lt;br /&gt;
&lt;br /&gt;
Android officially became the most attacked mobile operating system by far in the second quarter (Q2), indicating it is emerging as the Windows of the mobile hacking world.&lt;br /&gt;
....&lt;br /&gt;
The information grabbed includes: user identifier, SIM card number, telephone number, IMEI number, IMSI number, screen resolution and local time… If the root exploit is successful, the system partition is remounted as writable and various additional utilities installed, supposedly to make removal more difficult and allow for additional functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.scmagazine.com.au/News/267894,top-asx-listed-companies-vulnerable-to-apache-dos-exploit.aspx"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Top ASX-listed companies vulnerable to Apache DoS exploit&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.scmagazine.com.au/News/267894,top-asx-listed-companies-vulnerable-to-apache-dos-exploit.aspx"&gt;http://www.scmagazine.com.au/News/267894,top-asx-listed-companies-vulnerable-to-apache-dos-exploit.aspx&lt;/a&gt;&lt;br /&gt;
By Darren Pauli on Aug 24, 2011 12:17 PM&lt;br /&gt;
Attack launched over 3G&lt;br /&gt;
&lt;br /&gt;
Twenty six of the top 200 ASX-listed companies are vulnerable to an Apache web server denial of service exploit according to a penetration testing company.&lt;br /&gt;
The exploit issues partial content requests to Apache httpd which causes the daemon to swap memory to the file system, eventually triggering a denial of service attack&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;a href="http://blog.arpitnext.com/2011/08/chrome-extension-awesome-screenshot.html"&gt;Think Twice Before Installing Any Chrome Extension&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://blog.arpitnext.com/2011/08/chrome-extension-awesome-screenshot.html"&gt;http://blog.arpitnext.com/2011/08/chrome-extension-awesome-screenshot.html&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;Google Needs to Moderate Chrome Extension Gallery&lt;/b&gt;&lt;br /&gt;
If you are a Google Chrome user and have installed extensions from the Chrome Web Store, you need to know one important thing. The extensions available in official gallery are not as safe as you think. These extensions are not checked by Google for possible malicious behaviour. This means that these Chrome extensions may track your browsing habits, send data to a remote server, manipulate contents of a web page etc. without your consent.&lt;br /&gt;
The most unfortunate thing is that the Chrome team has no intention to implement an approval process for the items available at Web Store. I raised this issue earlier, but then the Chrome team said, “We’ve purposely avoided having a pre-review process for the extensions gallery / Chrome Web Store.”.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a href="http://www.scmagazine.com.au/News/267479,jailbroken-idevices-pwned-by-charging-stations.aspx"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Jailbroken idevices pwned by charging stations&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.scmagazine.com.au/News/267479,jailbroken-idevices-pwned-by-charging-stations.aspx"&gt;http://www.scmagazine.com.au/News/267479,jailbroken-idevices-pwned-by-charging-stations.aspx&lt;/a&gt;&lt;br /&gt;
By Darren Pauli on Aug 19, 2011 4:04 PM&lt;br /&gt;
&lt;b&gt;USB mode silently comes to life.&lt;/b&gt;&lt;br /&gt;
Data can be stolen from Windows, Android and Apple devices by unassuming power charging towers.&lt;br /&gt;
In an attack demonstrated at the Defcon hacking conference, mobile phone charging units were rigged to pull data from phones plugged into them.&lt;br /&gt;
They were laced with different power charging adaptors to make them more appealing.&lt;br /&gt;
Some stock phones were safe since they deactivated USB mode when they were powered off, but others were not so lucky.&lt;br /&gt;
Many jailbroken and modified devices activated USB functions when &amp;nbsp;they were plugged in, or simply rebooted.&lt;br /&gt;
That gave security researchers Brian Markus, Joseph Mlodzianowski and Robert Rowley the access they needed to pull data, though they instead served victims with a warning.&lt;br /&gt;
“If the phone died due to lack of power, in most cases the phone would boot up upon&lt;br /&gt;
plugging it in, then expose the data,” Marcus said.&lt;br /&gt;
&lt;div style="font-weight: bold;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;a href="http://www.crn.com.au/News/267333,droid-spyware-answers-phone-calls.aspx"&gt;Droid spyware answers phone calls&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://www.crn.com.au/News/267333,droid-spyware-answers-phone-calls.aspx"&gt;http://www.crn.com.au/News/267333,droid-spyware-answers-phone-calls.aspx&lt;/a&gt;&lt;br /&gt;
By Angela Moscaritolo on Aug 18, 2011 4:10 PM (9 hours ago)&lt;br /&gt;
"A malicious Android app that disguises itself as Google's new social networking platform, Google+, is capable of stealing data, and answering and recording incoming phone calls, researchers said this week.&lt;br /&gt;
The spyware app disguises itself as Google+ by installing itself with the name “Google ++,” Jamz Yaneza, threat research manager at Trend Micro.&lt;br /&gt;
The malware contained in the app shares the same code structure as previously discovered Android spyware that also can steal information and record phone calls made from infected devices."&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin: 0px;"&gt;
&lt;div style="margin: 0px;"&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;a href="http://blogs.rsa.com/rivner/anatomy-of-an-attack/"&gt;Anatomy of an Attack&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
&lt;a href="http://blogs.rsa.com/rivner/anatomy-of-an-attack/"&gt;http://blogs.rsa.com/rivner/anatomy-of-an-attack/&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
&lt;div style="margin: 0px;"&gt;
&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 11px; line-height: 19px;"&gt;Written on&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 11px; line-height: 19px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 11px; line-height: 19px;"&gt;&lt;span class="date"&gt;April 1, 2011&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 11px; line-height: 19px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 11px; line-height: 19px;"&gt;by&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 11px; line-height: 19px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 11px; line-height: 19px;"&gt;&lt;span class="author"&gt;&lt;a href="http://blogs.rsa.com/author/rivner/" style="color: #0c4b92; text-decoration: none;"&gt;Uri Rivner&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
&lt;div style="margin: 0px;"&gt;
"&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;The first thing actors like those behind the APT do is seek publicly available information about specific employees – social media sites are always a favorite.&amp;nbsp; With that in hand they then send that user a Spear Phishing email. Often the email uses target-relevant content; for instance, if you’re in the finance department, it may talk about some advice on regulatory controls.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
&lt;div style="margin: 0px;"&gt;
&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;The attacker in this case sent two different phishing emails over a two-day period. The two emails were sent to two small groups of employees; you wouldn’t consider these users particularly high profile or high value targets. The email subject line read “2011 Recruitment Plan.”............&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0px;"&gt;
Keywords:&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-4511458480775413286?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Ac6VuqocSI_UyH7sfDKHfhCWHLQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ac6VuqocSI_UyH7sfDKHfhCWHLQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Ac6VuqocSI_UyH7sfDKHfhCWHLQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ac6VuqocSI_UyH7sfDKHfhCWHLQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/sq_v1C06RT8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/4511458480775413286/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=4511458480775413286" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/4511458480775413286?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/4511458480775413286?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/sq_v1C06RT8/news-security.html" title="News - Security" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/08/news-security.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcBQ3g4fSp7ImA9WhRbEUU.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-1461534860223571223</id><published>2011-08-06T05:03:00.000-07:00</published><updated>2012-02-02T04:50:52.635-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-02T04:50:52.635-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Palamino" /><category scheme="http://www.blogger.com/atom/ns#" term="Athlon XP" /><category scheme="http://www.blogger.com/atom/ns#" term="Barton" /><category scheme="http://www.blogger.com/atom/ns#" term="Thoroughbred" /><title>How to Identify Athlon XP Palamino, Thoroughbred, Barton</title><content type="html">The AMD Athlon XP&amp;nbsp;Palamino, Thoroughbred, Barton CPU can be differentiated by the code that appears on the CPU.&lt;br /&gt;
&lt;br /&gt;
A few websites have tables of these codes which can be very helpful in determining exactly which AMD Athlon the CPU is. The links are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.c627627.com/AMD/AthlonXP/"&gt;http://www.c627627.com/AMD/AthlonXP/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://en.wikipedia.org/wiki/List_of_AMD_Athlon_XP_microprocessors"&gt;http://en.wikipedia.org/wiki/List_of_AMD_Athlon_XP_microprocessors&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;AMD CPU Codes for "Socket A", multipliers, and voltages&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://www.overclock.net/amd-cpus/172-amd-cpu-codes-multipliers-voltages.html"&gt;http://www.overclock.net/amd-cpus/172-amd-cpu-codes-multipliers-voltages.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;AMD Athlon, Athlon XP and Athlon MP identification&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://www.cpu-world.com/info/id/AMD-K7-identification.html"&gt;http://www.cpu-world.com/info/id/AMD-K7-identification.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-1461534860223571223?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BQdT7HhDKSxclr2Jcp8eVK8lhEs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BQdT7HhDKSxclr2Jcp8eVK8lhEs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BQdT7HhDKSxclr2Jcp8eVK8lhEs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BQdT7HhDKSxclr2Jcp8eVK8lhEs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/Bw5MXOsAjJQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/1461534860223571223/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=1461534860223571223" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/1461534860223571223?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/1461534860223571223?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/Bw5MXOsAjJQ/how-to-identify-athlon-xp-palamino.html" title="How to Identify Athlon XP Palamino, Thoroughbred, Barton" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/08/how-to-identify-athlon-xp-palamino.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEICSHs7cCp7ImA9WhdVFkg.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-5076788554720351652</id><published>2011-08-04T16:45:00.000-07:00</published><updated>2011-09-21T17:49:29.508-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-21T17:49:29.508-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="phone numbers" /><category scheme="http://www.blogger.com/atom/ns#" term="VOIP" /><category scheme="http://www.blogger.com/atom/ns#" term="phone spam" /><category scheme="http://www.blogger.com/atom/ns#" term="marketing phone" /><category scheme="http://www.blogger.com/atom/ns#" term="Fake phone numbers" /><category scheme="http://www.blogger.com/atom/ns#" term="Do Not Call" /><category scheme="http://www.blogger.com/atom/ns#" term="reverse lookup" /><title>How to Avoid Phone Spam</title><content type="html">This article addresses the following issues. If you have any one of these issues, there are options below of how to avoid them.&lt;br /&gt;
- Have you been called by marketing companies after giving out your phone number when filling some forms?&lt;br /&gt;
- Have you been called by marketing companies whose phone number are not actual permanent phone?&lt;br /&gt;
- Do you need to fill in an online application and they require your phone number to be filled in?&lt;br /&gt;
- Do you want to enter some special competition or promotional draw, but they need your phone number?&lt;br /&gt;
- Do you want to avoid giving your real phone numbers?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are some solutions:&lt;br /&gt;
&lt;br /&gt;
1. For Australians, it is possible to register your phone number with the government to specify that you do not wish to receive unsolicited phone calls. The organization that does this is the:&lt;br /&gt;
&lt;br /&gt;
National Do Not Call Registry&lt;br /&gt;
&lt;a href="https://www.donotcall.gov/"&gt;https://www.donotcall.gov/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. You can use the following sites to check where the phone number came from, if their phone numbers are left on your phone. Note that some of these sites may not work for all countries.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://www.numberguru.com/"&gt;https://www.numberguru.com/&lt;/a&gt;&lt;br /&gt;
numberguru&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.freephonenumberfinder.com/"&gt;http://www.freephonenumberfinder.com/&lt;/a&gt;&lt;br /&gt;
Free Phone Number Finder&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://whocallsme.com/Phone-Number.aspx"&gt;http://whocallsme.com/Phone-Number.aspx&lt;/a&gt;&lt;br /&gt;
WhoCallsMe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.reversephonesearch.com.au/"&gt;http://www.reversephonesearch.com.au&lt;/a&gt;&lt;br /&gt;
Australia Reverse Phone Lookup&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.reverseaustralia.com/lookup/"&gt;http://www.reverseaustralia.com/lookup/&lt;/a&gt;&lt;br /&gt;
reverseaustralia&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. If you do need to give out your phone number, you can try the following. These numbers have made calls to me but when I returned the call, there is no one there. They are technically valid phone numbers meaning you can get a connection, but they appear to be used for marketing and they are not owned by the people who made the call. If you know of any of such numbers, please post a comment here.&lt;br /&gt;
&lt;br /&gt;
02 8524 5998&lt;br /&gt;
02 8524 5985&lt;br /&gt;
02 8524 5941&lt;br /&gt;
03 9938 2698&lt;br /&gt;
&lt;br /&gt;
61 2 8524 5998&lt;br /&gt;
61 2 8524 5985&lt;br /&gt;
61 2 8524 5941&lt;br /&gt;
613 9938 2698&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-5076788554720351652?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QX7u_eVyywUbKqxNMedY1SE1ct0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QX7u_eVyywUbKqxNMedY1SE1ct0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QX7u_eVyywUbKqxNMedY1SE1ct0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QX7u_eVyywUbKqxNMedY1SE1ct0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/zVVl-dFpscA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/5076788554720351652/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=5076788554720351652" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/5076788554720351652?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/5076788554720351652?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/zVVl-dFpscA/how-to-avoid-phone-spam.html" title="How to Avoid Phone Spam" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/08/how-to-avoid-phone-spam.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQFSHw_eCp7ImA9WhRUEEw.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-2716025082617010517</id><published>2011-07-28T08:14:00.000-07:00</published><updated>2012-01-19T14:48:39.240-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-19T14:48:39.240-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Utilities" /><category scheme="http://www.blogger.com/atom/ns#" term="BootLoader" /><title>Links to Free Software</title><content type="html">This page brings together free and useful software. Software which are not free or do not have a free version will generally not be listed here.&lt;br /&gt;
&lt;u&gt;&lt;strike&gt;&lt;br /&gt;
&lt;/strike&gt;&lt;/u&gt;&lt;br /&gt;
&lt;u&gt;&lt;strike&gt;&lt;br /&gt;
&lt;/strike&gt;&lt;/u&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Utilities&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;Backup&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.areca-backup.org/"&gt;&lt;b&gt;Areca Backup&lt;/b&gt;&lt;/a&gt;&amp;nbsp;"is a personal backup solution which&amp;nbsp;basically allows you to select a set of files / directories to back-up, choose where and how (as a simple file copy, as a zip archive, ...) they will be stored, and configure post-backup actions (like sending backup reports by email or launching custom shell scripts)"&lt;br /&gt;
&lt;br /&gt;
&lt;img alt="File management software" src="http://www.syncplicity.com/img/syncp.png" /&gt;&amp;nbsp;&lt;b&gt;&lt;a href="http://www.syncplicity.com/"&gt;Syncplicity&lt;/a&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp;"is for users&amp;nbsp;managing either their personal or professional files, delivering comprehensive file sync, back-up, sharing and file management in one easy to use solution. Syncplicity instantly syncs files across your Macs, PCs and Google Docs, so that your files are always available across all the computers you use and the Web. "&lt;br /&gt;
&lt;div style="text-decoration: line-through;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;BootLoader&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://neosmart.net/dl.php?id=1"&gt;Easy BCD&lt;/a&gt;&amp;nbsp;&lt;/b&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;"extends and revamps the Windows Vista/Windows 7 BCD bootloader, and with EasyBCD, almost anything is possible. Setting up and configuring a dual-boot between Windows 7, Windows Vista, older versions of Windows such as XP &amp;amp; 2003, Linux, Ubuntu, BSD, and Mac OS X is a breeze. You just point &amp;amp; click and EasyBCD does the rest."&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://www.boot-us.com/favicon.ico" /&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.boot-us.com/"&gt;&lt;b&gt;Boot-US&lt;/b&gt;&lt;/a&gt;&amp;nbsp; "is an universal boot manager. It allows you to easily use of all your existing operating systems completely independent of each other. The boot manager can be comfortably installed directly under Windows."&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;Eraser&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://eraser.heidi.ie/"&gt;Eraser&lt;/a&gt;&lt;/b&gt;&amp;nbsp;"Eraser is an advanced security tool for Windows which allows you to completely remove sensitive data from your hard drive by overwriting it several times with carefully selected patterns."&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Remote Helper&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.teamviewer.com/en/index.aspx"&gt;&lt;b&gt;TeamViewer&lt;/b&gt;&lt;/a&gt;&amp;nbsp;"connects to any PC or server around the world within a few seconds. You can remote control your partner's PC as if you were sitting right in front of it. Find out why more than 100 million users trust TeamViewer!"&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://secure.logmein.com/"&gt;&lt;b&gt;LogMeIn&lt;/b&gt;&lt;/a&gt;&amp;nbsp;"remote control, file sharing, systems management, data backup, business collaboration and on-demand customer support of PCs, servers, Macintosh computers, smartphones and other connected devices."&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://support.soluto.com/home"&gt;&lt;b&gt;Soluto&lt;/b&gt;&lt;/a&gt;&amp;nbsp;"Help others with their PCs. Get started with your own. It's easy."&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Other Tools&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.piriform.com/ccleaner"&gt;&lt;b&gt;CCleaner&lt;/b&gt;&lt;/a&gt;&amp;nbsp;"the number-one tool for cleaning your Windows PC. It protects your privacy online and makes your computer faster and more secure. Easy to use and a small, fast download."&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.tweaknow.com/RegCleaner.php"&gt;&lt;b&gt;TweakNow RegCleaner&lt;/b&gt;&lt;/a&gt; "After a long period, after installing and uninstalling a lot number of applications, your Windows registry may contain a large number of obsolete entries. These will significantly increase the registry size and thus will slow down your computer, because Windows will need more time to load, search, and read data from registry.&lt;br /&gt;
To keep your computer in top performance, it is recommended to periodically clean your Windows registry."&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.revouninstaller.com/revo_uninstaller_free_download.html"&gt;&lt;b&gt;Revo Uninstaller&lt;/b&gt;&lt;/a&gt;&amp;nbsp;"helps you to uninstall software and remove unwanted programs installed on your computer easily! Even if you have problems uninstalling and cannot uninstall them from "Windows Add or Remove Programs" control panel applet."&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-2716025082617010517?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LThSiJP7S0EjksMkNhG0o784JVk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LThSiJP7S0EjksMkNhG0o784JVk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LThSiJP7S0EjksMkNhG0o784JVk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LThSiJP7S0EjksMkNhG0o784JVk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/EWOLtMCPIs0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/2716025082617010517/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=2716025082617010517" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/2716025082617010517?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/2716025082617010517?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/EWOLtMCPIs0/links-to-free-software.html" title="Links to Free Software" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/07/links-to-free-software.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUFQX05eCp7ImA9WhdSGEs.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-4147780396343285696</id><published>2011-07-28T07:26:00.001-07:00</published><updated>2011-07-28T07:26:50.320-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-28T07:26:50.320-07:00</app:edited><title>Links to HTML5</title><content type="html">&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="font-size: 12px; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Dive into HTML5&amp;nbsp;&lt;/em&gt;&lt;a href="http://diveintohtml5.org/" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #003366; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;http://diveintohtml5.org/&lt;/a&gt;&lt;strong style="font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="font-size: 12px; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;HTML5 - Getting Started&amp;nbsp;&lt;/em&gt;&lt;a href="http://www.dave-woods.co.uk/index.php/html5-tutorial-getting-started/" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #003366; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;http://www.dave-woods.co.uk/index.php/html5-tutorial-getting-started/&lt;/a&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="font-size: 12px; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A Preview of HTML5&amp;nbsp;&lt;/em&gt;&lt;a href="http://www.alistapart.com/articles/previewofhtml5" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #003366; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;http://www.alistapart.com/articles/previewofhtml5&lt;/a&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Web and Mobile Trends&lt;/strong&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;HTML5 is shaping up to be the premier presentation technology for the “three screens and the cloud” vision!&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="font-size: 12px; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The Web Takes Center Stage at Microsoft's MIX11 Conference&amp;nbsp;&lt;/em&gt;&lt;a href="http://www.microsoft.com/presspass/press/2011/apr11/04-12mix1pr.mspx" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #003366; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;http://www.microsoft.com/presspass/press/2011/apr11/04-12mix1pr.mspx&lt;/a&gt;&lt;strong style="font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="font-size: 12px; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The Mobile vs. HTML5 Debate&amp;nbsp;&lt;/em&gt;&lt;a href="http://www.html5rocks.com/en/mobile/nativedebate.html" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #003366; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;http://www.html5rocks.com/en/mobile/nativedebate.html&lt;/a&gt;&lt;strong style="font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Desktops and Browsers&lt;/strong&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;HTML5 is showing up everywhere, and it’s not just for web development anymore!&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="font-size: 12px; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Windows 8 Powered By HTML5&amp;nbsp;&lt;/em&gt;&lt;a href="http://www.winmatrix.com/forums/index.php?/topic/31765-windows-8-apps-poawered-by-html5/" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #003366; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;http://www.winmatrix.com/forums/index.php?/topic/31765-windows-8-apps-poawered-by-html5/&lt;/a&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="font-size: 12px; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;IE9 - Summarizing Common Browser Tests&amp;nbsp;&lt;/em&gt;&lt;a href="http://blogs.msdn.com/b/ie/archive/2011/02/09/summarizing-common-browser-tests.aspx" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #003366; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;http://blogs.msdn.com/b/ie/archive/2011/02/09/summarizing-common-browser-tests.aspx&lt;/a&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="font-size: 12px; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;IE10 Preview 2 - Site Ready HTML5&amp;nbsp;&lt;/em&gt;&lt;a href="http://blogs.msdn.com/b/ie/archive/2011/06/29/site-ready-html5-second-ie10-platform-preview-available-for-developers.aspx" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #003366; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;http://blogs.msdn.com/b/ie/archive/2011/06/29/site-ready-html5-second-ie10-platform-preview-available-for-developers.aspx&lt;/a&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Development&lt;/strong&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;You can make HTML5 work for you with these tools!&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="font-size: 12px; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Announcing HTML5 and CSS3 support for Visual Studio 2010&amp;nbsp;&lt;/em&gt;&lt;a href="http://vishaljoshi.blogspot.com/2011/06/announcing-html5-css3-support-for.html" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #003366; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;http://vishaljoshi.blogspot.com/2011/06/announcing-html5-css3-support-for.html&lt;/a&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="font-size: 12px; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Build JavaScript in C# with Script#&lt;/em&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.8em; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://projects.nikhilk.net/ScriptSharp" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #003366; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;http://projects.nikhilk.net/ScriptSharp&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-4147780396343285696?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lUVZIe7IKW1ULfAoUUvOaGwCxs4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lUVZIe7IKW1ULfAoUUvOaGwCxs4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lUVZIe7IKW1ULfAoUUvOaGwCxs4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lUVZIe7IKW1ULfAoUUvOaGwCxs4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/jit2Mp5wZGU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/4147780396343285696/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=4147780396343285696" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/4147780396343285696?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/4147780396343285696?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/jit2Mp5wZGU/links-to-html5.html" title="Links to HTML5" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/07/links-to-html5.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIDR3w7eSp7ImA9WhRRFUg.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-8754878390108001369</id><published>2011-07-27T07:55:00.001-07:00</published><updated>2011-11-29T00:16:16.201-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-29T00:16:16.201-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="amazon cloud drive" /><category scheme="http://www.blogger.com/atom/ns#" term="syncplicity" /><category scheme="http://www.blogger.com/atom/ns#" term="online storage" /><category scheme="http://www.blogger.com/atom/ns#" term="skydrive" /><category scheme="http://www.blogger.com/atom/ns#" term="Picasa web album" /><title>Online Storage</title><content type="html">This page provides links to FREE Online Storage sites:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Syncplicity&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://www.syncplicity.com/"&gt;http://www.syncplicity.com&lt;/a&gt;&lt;br /&gt;
2 GB free storage&lt;br /&gt;
Able to sync with Google Docs&lt;br /&gt;
&lt;br /&gt;
Pros:&lt;br /&gt;
- Has Backup as well as Sync functions&lt;br /&gt;
- Allow folders that are synced, to change their location in the local PC.&lt;br /&gt;
&lt;br /&gt;
Usage Tips&lt;br /&gt;
- In Sync mode, when a file is delete from the cloud or PC, then the file is also deleted from PC or cloud.&lt;br /&gt;
- In Backup mode, deleting the file from the Cloud, does not delete the file on the local PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Skydrive&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://skydrive.live.com/"&gt;http://skydrive.live.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
25 GB of free online storage for sharing Microsoft Office&amp;nbsp;docs and photos.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Picasa Web Album&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://https/picasaweb.google.com/home"&gt;http://https/picasaweb.google.com/home&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://picasa.google.com/support/bin/answer.py?hl=en&amp;amp;answer=1224181"&gt;http://picasa.google.com/support/bin/answer.py?hl=en&amp;amp;answer=1224181&lt;/a&gt;&lt;br /&gt;
1GB Free photos and videos&lt;br /&gt;
Photos up to 2048 x 2048 pixels and videos up to 15 minutes won't count towards your free storage.&lt;br /&gt;
&lt;br /&gt;
Started playing with this and it seems to work nicely. A few things to know about.&lt;br /&gt;
You need to get these pieces of technology:&lt;br /&gt;
- Picasa - an application to download to your PC. It is a photo album management tool with editing capabilities.&lt;br /&gt;
- Picasa Web Album - you would have access to this if you have a google account&lt;br /&gt;
- Google+ is the new Google social website. You need to have Google+, then any photos less than &lt;a href="http://picasa.google.com/support/bin/answer.py?hl=en&amp;amp;answer=1224181&amp;amp;topic=1689654"&gt;2048x2048&lt;/a&gt; pixels will not be counted as your storage limit.&lt;br /&gt;
&lt;br /&gt;
The concept and steps to backup and synchronize your photos to Google are the following:&lt;br /&gt;
- After installing the Picasa application, and running it, it allows you to choose which photo folders in your PC to become albums in Picasa.&lt;br /&gt;
- From Picasa, after choosing the photos to make albums, just click synchronize on a specific folder, and the photos will be synchronized with both &lt;a href="http://picasa.google.com/support/bin/answer.py?hl=en_US&amp;amp;answer=1321133"&gt;Picasa Web Album and Google+ Photos&lt;/a&gt;.&lt;br /&gt;
- Warning: At this time, Picasa Web Album does not have the concept of a folder tree, ie.no sub-folders available.&lt;br /&gt;
- In Picasa application, the albums can be in Folder or Tree View but the default view is a Flat folder structure. This is quite confusing since folders appear at the same level as sub-folders. However this can be easily changed by going to View - Folder View &amp;nbsp;- Tree View.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Amazon Cloud Drive&lt;/b&gt;&lt;br /&gt;
&lt;a href="https://www.amazon.com/clouddrive/learnmore"&gt;https://www.amazon.com/clouddrive/learnmore&lt;/a&gt;&lt;br /&gt;
5 GB of free online storage&lt;br /&gt;
Store your music, videos, photos, and documents on Amazon's secure servers.&lt;br /&gt;
MP3 format not counted towards quota.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;SugarSync&lt;/b&gt;&lt;br /&gt;
&lt;a href="https://www.sugarsync.com/free/"&gt;https://www.sugarsync.com/free/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Get a SugarSync 5 GB Plan Free!&lt;br /&gt;
Free online backup, free file sync, and free file sharing&lt;br /&gt;
Free cloud storage gives you instant and easy access to your data anytime, anywhere.&lt;br /&gt;
Online backup and automatic file sync for work files or personal files like photos, videos, and music.&lt;br /&gt;
Download free mobile apps to sync iPhone, iPad, Android, BlackBerry, Windows Mobile, and Symbian devices.&lt;br /&gt;
Sync 5 GB of data across an unlimited number of devices.&lt;br /&gt;
&lt;br /&gt;
Usage Tips:&lt;br /&gt;
1. Files or Folders can be viewed 3 ways: Windows Explorer, SugarSync App, SugarSync website.&lt;br /&gt;
2. Sync means deleting file on Cloud will also delete file on local PC and vice versa.&lt;br /&gt;
3. Delete synced file from Windows Explorer - will delete file from cloud.&lt;br /&gt;
4. Delete synced file from SugarSync Website - will delete file from local PC.&lt;br /&gt;
5. Stop Sync will not affect files on local PC, but will delete files from cloud.&lt;br /&gt;
6. To Stop Sync, open SugarSync App, go to Manage Sync Folders. Click on the folder name, then click on the little X on the top right corner.&lt;br /&gt;
7. Pros: Synced files in the cloud, which gets deleted, can be recovered&lt;br /&gt;
8. Cons: the folders that can be added to Sync, all seem to appear on a flat structure. There does not appear to be a folder hierarchy.&lt;br /&gt;
9. Web Archive has the following special characteristics:&lt;br /&gt;
- it acts as Backup - it does NOT sync files.&lt;br /&gt;
- put files here manually as once off event.&lt;br /&gt;
- files that are deleted from the Web Archive, cannot be recovered. There is no Recycle bin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;DropBox - DANGER&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://www.dropbox.com/pricing"&gt;http://www.dropbox.com/pricing&lt;/a&gt;&lt;br /&gt;
The free Dropbox account comes with 2GB of space that you can use for as long as you like.&lt;br /&gt;
&lt;b&gt;Disclaimer&lt;/b&gt;: This is a personal view based on experience.&lt;br /&gt;
I was using DropBox to sync one of my major folders with many subfolders and total size above 1.5GB.&lt;br /&gt;
&lt;br /&gt;
1. Dropbox Startup - this causes computer to FREEZE. Only solution is to reboot to Windows Safe Mode, go to MSconfig and disable Dropbox from starting automatically. Then Reboot and launch Dropbox. Make sure the very first thing you do after this is to set Preference for Dropbox to NOT startup automatically.&lt;br /&gt;
&lt;br /&gt;
2. Selective Sync Conflict - With the 1.5GB syncing for a long time, that's fine. But when I wanted to have more control over the syncing, while it was syncing, I went into Preference and into Selective Sync, and removed a few subfolders. After a while is appeared DropBox had serious problems and got confused by the changed selective sync option. The result is I've got folder "A" with some files missing, and a second folder "A (Selective Sync Conflict)" which contains some other partial files. This is not desirable.&lt;br /&gt;
&lt;br /&gt;
3. Original Files DELETED - After all this, I decide just to uncheck all subfolders from the Selective Sync list so I can pause and consider what happened. In front of my eyes, all the sub-folders under DropBox started Disappearing. Dropbox decided to delete all subfolders which I removed from selective sync.&lt;br /&gt;
&lt;br /&gt;
All these effects may have been bugs OR it may have been that I am incorrectly using their features. BUT, to allow user mistakes to convert into actions that DELETES original files in the users PC is very unacceptable.&lt;br /&gt;
Use Dropbox with Extreme Caution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some articles on Online Storage:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;a href="http://www.computerworld.com/s/article/9222176/The_Cloud_Day_13_Storing_and_Managing_Pictures_in_the_Cloud?taxonomyId=158&amp;amp;pageNumber=3"&gt;The Cloud, Day 13: Storing and Managing Pictures in the Cloud&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
By Tony Bradley&lt;br /&gt;
November 26, 2011 09:44 AM ET&lt;br /&gt;
&lt;br /&gt;
"Before I end Day 13, a quick side note about Day 11. Some readers correctly pointed out that I had forgotten about Amazon, and the Amazon Cloud Player in my discussion of cloud-based music options. You can purchase 20GB of Amazon Cloud Drive storage for $20 per year, and Amazon is throwing in unlimited space for music files with it for a limited time." ............&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-8754878390108001369?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5PL2cYB-7xII65lUtzTRLoNAXx8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5PL2cYB-7xII65lUtzTRLoNAXx8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5PL2cYB-7xII65lUtzTRLoNAXx8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5PL2cYB-7xII65lUtzTRLoNAXx8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/dxwWOkeJq8o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/8754878390108001369/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=8754878390108001369" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/8754878390108001369?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/8754878390108001369?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/dxwWOkeJq8o/online-storage.html" title="Online Storage" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/07/online-storage.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8ASXo9eip7ImA9WhZUEkg.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-4231349169799659279</id><published>2011-06-04T23:20:00.001-07:00</published><updated>2011-06-04T23:20:48.462-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-04T23:20:48.462-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="photoshop elements" /><category scheme="http://www.blogger.com/atom/ns#" term="Photo" /><category scheme="http://www.blogger.com/atom/ns#" term="colour subject" /><category scheme="http://www.blogger.com/atom/ns#" term="duplicate layer." /><category scheme="http://www.blogger.com/atom/ns#" term="magnetic lasso" /><category scheme="http://www.blogger.com/atom/ns#" term="colour foreground" /><category scheme="http://www.blogger.com/atom/ns#" term="inverse" /><category scheme="http://www.blogger.com/atom/ns#" term="black and white background" /><title>How to Make Photos with Black and White Background and Colour Subject</title><content type="html">This is to make the photo basically black and white but only the specific subject in colour. The basic idea involves the following:&lt;br /&gt;
- Make two copies of the same image in 2 separate layers&lt;br /&gt;
- Convert one layer to grayscale&lt;br /&gt;
- Switch to the colour layer and select most of the photo leaving the subject unselected.&lt;br /&gt;
- Delete the selection, leaving just the colour subject on top of the grayscale subject.&lt;br /&gt;
&lt;br /&gt;
The steps below shop how to achieve this using Photoshop Elements.&lt;br /&gt;
1. To make a copy of the image: Layer -&amp;gt; Duplicate layer.&lt;br /&gt;
2. To select the bottom layer to work with, go to the Layer Palette on the right side of the screen. Then click Background to select the bottom layer.&lt;br /&gt;
3. To convert bottom layer to black and white:&lt;br /&gt;
&amp;nbsp; &amp;nbsp;Enhance -&amp;gt; Convert to Black and White.&lt;br /&gt;
Since the black and white layer is at the bottom, you would not see any difference to the top layer.&lt;br /&gt;
4. Use a selection tool to select the image that you want to be in colour. For example we can use the Magnetic Lasso to select the subject.&lt;br /&gt;
5. To remove everything else besides the subject, with the subject selected from the previous step, now choose Select -&amp;gt; Inverse. Then press Delete.&lt;br /&gt;
This will leave the subject in colour on top and the bottom black and white background will appear.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-4231349169799659279?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/R6nDH7lKb4kDQaP-NAotvijP0Jg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R6nDH7lKb4kDQaP-NAotvijP0Jg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/R6nDH7lKb4kDQaP-NAotvijP0Jg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R6nDH7lKb4kDQaP-NAotvijP0Jg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/7OpNHVyBgeA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/4231349169799659279/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=4231349169799659279" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/4231349169799659279?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/4231349169799659279?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/7OpNHVyBgeA/how-to-make-photos-with-black-and-white.html" title="How to Make Photos with Black and White Background and Colour Subject" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/06/how-to-make-photos-with-black-and-white.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4DQ3w9eCp7ImA9WhZVGUk.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-7816054879940537067</id><published>2011-06-01T10:04:00.001-07:00</published><updated>2011-06-01T10:06:12.260-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-01T10:06:12.260-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="visual studio" /><category scheme="http://www.blogger.com/atom/ns#" term="MySQL" /><category scheme="http://www.blogger.com/atom/ns#" term="aspx" /><category scheme="http://www.blogger.com/atom/ns#" term="PageLoad" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP Postback" /><category scheme="http://www.blogger.com/atom/ns#" term="asp.net" /><category scheme="http://www.blogger.com/atom/ns#" term="GridView" /><category scheme="http://www.blogger.com/atom/ns#" term="Custom Control" /><category scheme="http://www.blogger.com/atom/ns#" term="ADO.Net" /><category scheme="http://www.blogger.com/atom/ns#" term="WebService" /><category scheme="http://www.blogger.com/atom/ns#" term="Data Binding" /><title>Notes ASP.Net</title><content type="html">NotesASPdotNet&lt;br /&gt;
&lt;br /&gt;
Contents&lt;br /&gt;
=========&lt;br /&gt;
Tutorial&lt;br /&gt;
Structure&lt;br /&gt;
ASP.Net Configuration&lt;br /&gt;
Connecting Events&lt;br /&gt;
HTML Control Class&lt;br /&gt;
Web / Server Control Class&lt;br /&gt;
ASP postback - eg like AJAX&lt;br /&gt;
Dispose, Finalize, Finally, Close&lt;br /&gt;
ADO.Net - Accessing Data the Easy Way&lt;br /&gt;
ADO.Net - Example&lt;br /&gt;
ADO.Net - command parameters&lt;br /&gt;
ADO.Net - Data Binding&lt;br /&gt;
ADO.Net - Data Binding - DataList&lt;br /&gt;
ADO.Net - Styles and Templates summary&lt;br /&gt;
Windows Service Applications&lt;br /&gt;
VS Setup Projects&lt;br /&gt;
Understanding ADO.Net - from AppDev video tutorial&lt;br /&gt;
Using MySQL in Visual Studio&lt;br /&gt;
Configuring MySQL with ASP.Net&lt;br /&gt;
DropDownList&lt;br /&gt;
DataGrid - Sorting&lt;br /&gt;
GridView&lt;br /&gt;
GridView - Sorting&lt;br /&gt;
GridView - Selecting Rows, Clickable Rows&lt;br /&gt;
WebService in ASP.Net&lt;br /&gt;
ASP.Net Custom Control&lt;br /&gt;
Strings&lt;br /&gt;
How to Add Google Maps to your ASP.Net page&lt;br /&gt;
ASP.Net inline Tags &amp;lt;%...%&amp;gt;&lt;br /&gt;
ASP.Net calling Javascript client side&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
=========&lt;br /&gt;
1. Visual Studio 2005 -&amp;gt; Help -&amp;gt; Contents -&amp;gt; .Net Development&lt;br /&gt;
-&amp;gt; Web Applications -&amp;gt; ASP.Net Quickstart Tutorials&lt;br /&gt;
&lt;br /&gt;
Structure&lt;br /&gt;
===========&lt;br /&gt;
System.Web.UI - Generic Page Class&lt;br /&gt;
|&lt;br /&gt;
V&lt;br /&gt;
custom page class (my *.cs file, eg HelloClass.cs)&lt;br /&gt;
|&lt;br /&gt;
V&lt;br /&gt;
custom aspx file (my *.aspx file, eg Hello.aspx)&lt;br /&gt;
|&lt;br /&gt;
V&lt;br /&gt;
Page object&lt;br /&gt;
&lt;br /&gt;
System.Web.HttpApplication&lt;br /&gt;
|&lt;br /&gt;
V&lt;br /&gt;
class GlobalApp (global.cs)&lt;br /&gt;
|&lt;br /&gt;
V&lt;br /&gt;
global.asax   -&amp;gt; contain event handling code, each application can&lt;br /&gt;
have one global.asax.&lt;br /&gt;
&lt;br /&gt;
The classes are linked together like this:&lt;br /&gt;
VS2005: Global.asax no longer created automatically but can be added by:&lt;br /&gt;
Add new item -&amp;gt; Global Application Class.&lt;br /&gt;
Also the code behind global.asax.cs is no longer created, instead put&lt;br /&gt;
the code inline in global.asax&lt;br /&gt;
Hello.aspx&lt;br /&gt;
-----------&lt;br /&gt;
&amp;lt;%@ Page Language="CS" Inherits="HelloClass" Src="HelloClass.cs" %&amp;gt; -&lt;br /&gt;
if source is supplied&lt;br /&gt;
&amp;lt;%@ Page Language="CS" Inherits="HelloClass"  %&amp;gt; - if dll is supplied&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;form id="Form" runat="server"&amp;gt;&lt;br /&gt;
&amp;lt;asp:Label id="lblTest" runat="server" /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
....&lt;br /&gt;
HelloClass.cs&lt;br /&gt;
--------------&lt;br /&gt;
public class HelloClass : System.Web.UI.Page {&lt;br /&gt;
protected System.Web.UI.WebControls.Label lblTest;&lt;br /&gt;
private void Page_Load(){&lt;br /&gt;
lblTest.Text = "Hello World";&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
some basic event available to global.asax inherited from HttpApplication:&lt;br /&gt;
Application_OnStart&lt;br /&gt;
Application_OnEnd&lt;br /&gt;
Application_OnBeginRequest&lt;br /&gt;
Application_OnEndRequest&lt;br /&gt;
Application_OnError&lt;br /&gt;
Session_OnStart&lt;br /&gt;
Session_OnEnd&lt;br /&gt;
ASP.Net Configuration&lt;br /&gt;
======================&lt;br /&gt;
1. machine.config  - one per server, located at:&lt;br /&gt;
Microsoft.Net/Framework/Version/Config/&lt;br /&gt;
2. web.config - one per application, as well as one in each virtual&lt;br /&gt;
sub-directory.&lt;br /&gt;
3. Structure and contents of web.config&lt;br /&gt;
+++++++++++++&lt;br /&gt;
&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
&amp;lt;!-- custome settings - using your own keyword --&amp;gt;&lt;br /&gt;
&amp;lt;appSettings&amp;gt;&lt;br /&gt;
&amp;lt;add key="ConnectionString" value="Data Source=localhost;Initial&lt;br /&gt;
Catalog=Pubs;User ID=sa"/&amp;gt;&lt;br /&gt;
&amp;lt;add key="SelectSales" value="Select * FROM Sales"/&amp;gt;&lt;br /&gt;
&amp;lt;/appSettings&amp;gt;&lt;br /&gt;
&amp;lt;system.web&amp;gt;&lt;br /&gt;
&amp;lt;httpRuntime /&amp;gt;&lt;br /&gt;
&amp;lt;pages /&amp;gt;&lt;br /&gt;
&amp;lt;compilation /&amp;gt;&lt;br /&gt;
&amp;lt;customErrors /&amp;gt;&lt;br /&gt;
&amp;lt;authentication /&amp;gt;&lt;br /&gt;
&amp;lt;authorization /&amp;gt;&lt;br /&gt;
&amp;lt;identity /&amp;gt;&lt;br /&gt;
&amp;lt;trace /&amp;gt;&lt;br /&gt;
&amp;lt;sessionState /&amp;gt;&lt;br /&gt;
&amp;lt;httpHandlers /&amp;gt;&lt;br /&gt;
&amp;lt;httpModules /&amp;gt;&lt;br /&gt;
&amp;lt;globalization /&amp;gt;&lt;br /&gt;
&amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
+++++++++++++&lt;br /&gt;
4. To make use of the special custom settings, eg.&lt;br /&gt;
++++++++++&lt;br /&gt;
using System;&lt;br /&gt;
using System.Configuration;&lt;br /&gt;
using System.Web.UI;&lt;br /&gt;
using System.Web.UI.WebControls;&lt;br /&gt;
namespace Project&lt;br /&gt;
{&lt;br /&gt;
public partial class ShowCustomConfigSettings : System.Web.UI.Page&lt;br /&gt;
{&lt;br /&gt;
protected Label lblTest;&lt;br /&gt;
protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;
{&lt;br /&gt;
lblTest.Text = "This app will connect with the connection&lt;br /&gt;
string &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;";&lt;br /&gt;
lblTest.Text +=&lt;br /&gt;
ConfigurationSettings.AppSettings["ConnectionString"];&lt;br /&gt;
lblTest.Text += "&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; and will execute the SQL statement &amp;lt;br&amp;gt;";&lt;br /&gt;
lblTest.Text += ConfigurationSettings.AppSettings["SelectSales"];&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
++++++++++&lt;br /&gt;
&lt;br /&gt;
Connecting Events&lt;br /&gt;
===================&lt;br /&gt;
case: A button called id="Convert" on the aspx page. Functionality is&lt;br /&gt;
in the function called&lt;br /&gt;
"Convert_ServerClick"&lt;br /&gt;
On the aspx page, have the attribute in the &amp;lt;%@Page .... &amp;gt;&lt;br /&gt;
AutoEventWireup="false"&lt;br /&gt;
To connect the function "Convert_ServerClick" to the event:&lt;br /&gt;
1.     protected override void OnInit(EventArgs e)        {&lt;br /&gt;
InitializeComponent();&lt;br /&gt;
base.OnInit(e);&lt;br /&gt;
}&lt;br /&gt;
2.      private void InitializeComponent() {&lt;br /&gt;
Convert.ServerClick += new EventHandler(Convert_ServerClick);&lt;br /&gt;
}&lt;br /&gt;
Note that EventHandler is a DELEGATE that connects a the function&lt;br /&gt;
"Convert_ServerClick"&lt;br /&gt;
The EventHandler delegate would have the same prototype of the&lt;br /&gt;
function it points to, ie.:&lt;br /&gt;
protected void Convert_ServerClick(Object sender, EventArgs e)&lt;br /&gt;
The ServerClick would be a type of the EventHandler delegate; perhaps&lt;br /&gt;
public event EventHandler ServerClick&lt;br /&gt;
perhaps defined under the Convert's class - HtmlInputButton&lt;br /&gt;
HTML Control Class&lt;br /&gt;
=======================&lt;br /&gt;
System.Object&lt;br /&gt;
System.Web.UI.Controls&lt;br /&gt;
HtmlControl   ---&amp;gt; System.Web.UI.HtmlControls namespace&lt;br /&gt;
HtmlImage&lt;br /&gt;
HtmlInputControl&lt;br /&gt;
HtmlInputButton&lt;br /&gt;
HtmlInputCheckBox&lt;br /&gt;
HtmlInputFile&lt;br /&gt;
HtmlInputHidden&lt;br /&gt;
HtmlInputImage&lt;br /&gt;
HtmlInputRadioButton&lt;br /&gt;
HtmlInputText&lt;br /&gt;
HtmlContainerControl&lt;br /&gt;
HtmlAnchor&lt;br /&gt;
HtmlButton&lt;br /&gt;
HtmlForm&lt;br /&gt;
HtmlGenericControl&lt;br /&gt;
HtmlSelect&lt;br /&gt;
HtmlTable&lt;br /&gt;
HtmlTableCell&lt;br /&gt;
HtmlTableRow&lt;br /&gt;
HtmlTextArea&lt;br /&gt;
Web / Server Control Class&lt;br /&gt;
============================&lt;br /&gt;
System.Object&lt;br /&gt;
System.Web.UI.Controls&lt;br /&gt;
Repeater         ---&amp;gt; System.Web.UI.WebControls&lt;br /&gt;
WebControl&lt;br /&gt;
AdRotator&lt;br /&gt;
Calendar&lt;br /&gt;
ValidationSummary&lt;br /&gt;
BaseDataList (abstract)&lt;br /&gt;
DataGrid&lt;br /&gt;
DataList&lt;br /&gt;
ListControl  (abstract)&lt;br /&gt;
CheckBoxList&lt;br /&gt;
DropDownList&lt;br /&gt;
ListBox&lt;br /&gt;
RadioButtonList&lt;br /&gt;
Button&lt;br /&gt;
CheckBox&lt;br /&gt;
RadioButton&lt;br /&gt;
Hyperlink&lt;br /&gt;
Image&lt;br /&gt;
ImageButton&lt;br /&gt;
Label&lt;br /&gt;
BaseValidator   (abstract)&lt;br /&gt;
CompareValidator&lt;br /&gt;
CustomValidator&lt;br /&gt;
RangeValidator&lt;br /&gt;
RegularExpressionValidator&lt;br /&gt;
RequiredFieldValidator&lt;br /&gt;
LinkButton&lt;br /&gt;
Panel&lt;br /&gt;
Table&lt;br /&gt;
TableCell&lt;br /&gt;
TableHeaderCell&lt;br /&gt;
TableRow&lt;br /&gt;
TextBox&lt;br /&gt;
ASP postback - eg like AJAX&lt;br /&gt;
============================&lt;br /&gt;
1. Web control events that can use POSTBACK, when AutoPostBack property is set&lt;br /&gt;
to true:&lt;br /&gt;
Events                Web Control&lt;br /&gt;
=======               ===========================&lt;br /&gt;
Click                 Button, ImageButton&lt;br /&gt;
TextChange            TextBox&lt;br /&gt;
CheckChanged          CheckBox, RadioButton&lt;br /&gt;
SelectedIndexChange   DropDownList, ListBox, CheckBoxList, RadioButtonList&lt;br /&gt;
2. ASP.Net automatically adds these to the HTML page:&lt;br /&gt;
&amp;lt;input type="hidden" name="__EVENTTARGET" value=""/&amp;gt;&lt;br /&gt;
&amp;lt;input type="hidden" name="__EVENTARGUMENT" value=""/&amp;gt;&lt;br /&gt;
&amp;lt;script language="javascript"&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function __doPostBack(eventTarget, eventArgument){&lt;br /&gt;
var theform = document.Form1;&lt;br /&gt;
theform.__EVENTTARGET.value = eventTarget;&lt;br /&gt;
theform.__EVENTARGUMENT.value = eventArgument;&lt;br /&gt;
theform.submit();&lt;br /&gt;
}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
3. Add event handlers to the InitializeComponent() method&lt;br /&gt;
i.e.  &amp;lt;button&amp;gt;.&amp;lt;Event&amp;gt; += new EventHandler(&amp;lt;functionName&amp;gt;)&lt;br /&gt;
eg    txt.TextChanged += new  EventHandler(CtrlChanged)&lt;br /&gt;
4. Implement using the added function:&lt;br /&gt;
private void CtrlChanged(Object sender, EventArgs e) {    }&lt;br /&gt;
ADO.Net - Accessing Data the Easy Way&lt;br /&gt;
=============================&lt;br /&gt;
To retrieve information&lt;br /&gt;
1. Create Connection, Command and DataReader objects&lt;br /&gt;
2. Use DataReader to retrieve info and display it on web&lt;br /&gt;
3. Close connection.&lt;br /&gt;
4. Send page to user.&lt;br /&gt;
To add or update information&lt;br /&gt;
1. Create new Connection and Command objects.&lt;br /&gt;
2. Execute the Command&lt;br /&gt;
ADO.Net - Example&lt;br /&gt;
=========&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Data.SqlClient;  // for MS SQL&lt;br /&gt;
using System.Data.OleDb;      // for general connector&lt;br /&gt;
// Define the connection to Database&lt;br /&gt;
&amp;lt;x&amp;gt;={Sql, OleDb, ...}&lt;br /&gt;
&amp;lt;x&amp;gt;Connection myConn = new &amp;lt;x&amp;gt;Connection();&lt;br /&gt;
myConn.ConnectionString = "Provider=SQLOLEDB.1; Data&lt;br /&gt;
Source=localhost;" + " Initial Catalog=Pubs; User ID=root";&lt;br /&gt;
// the provider is need when &amp;lt;x&amp;gt;=OleDb, but not when &amp;lt;x&amp;gt;=Sql.&lt;br /&gt;
// Password is not passed here if using "Integrated Windows Authentication"&lt;br /&gt;
myConn.ConnectionString = "Provider=SQLOLEDB.1; Data&lt;br /&gt;
Source=localhost;" + " Initial Catalog=Pubs; Integrated&lt;br /&gt;
Security=SSPI";&lt;br /&gt;
// Making the connection&lt;br /&gt;
try{&lt;br /&gt;
myConn.Open();&lt;br /&gt;
lblInfo.Text="&amp;lt;b&amp;gt;Server Version: &amp;lt;/b&amp;gt;" + myConn.ServerVersion;&lt;br /&gt;
lblInfo.Text+="&amp;lt;br&amp;gt;&amp;lt;b&amp;gt; Connection is:&amp;lt;/b&amp;gt; " + myConn.State.ToString();&lt;br /&gt;
} catch(Exception err) {&lt;br /&gt;
lblInfo.Text = "Error reading the database.";&lt;br /&gt;
lblInfo.Text += err.Message;&lt;br /&gt;
} finally {&lt;br /&gt;
myConn.Close();&lt;br /&gt;
lblInfo.Text += "&amp;lt;br&amp;gt; Now Connection is";&lt;br /&gt;
lblInfo.Text += myConn.State.ToString();&lt;br /&gt;
}&lt;br /&gt;
//Alternative connection&lt;br /&gt;
using{&lt;br /&gt;
myConn.Open();&lt;br /&gt;
lblInfo.Text="&amp;lt;b&amp;gt;Server Version: &amp;lt;/b&amp;gt;" + myConn.ServerVersion;&lt;br /&gt;
lblInfo.Text+="&amp;lt;br&amp;gt;&amp;lt;b&amp;gt; Connection is:&amp;lt;/b&amp;gt; " + myConn.State.ToString();&lt;br /&gt;
}&lt;br /&gt;
lblInfo.Text += "&amp;lt;br&amp;gt; Now Connection is";&lt;br /&gt;
lblInfo.Text += myConn.State.ToString();&lt;br /&gt;
// Creating the SQL statement and assigning to Command&lt;br /&gt;
&amp;lt;x&amp;gt;Command myCmd = new &amp;lt;x&amp;gt;Command();&lt;br /&gt;
myCmd.Connection = myConn;&lt;br /&gt;
myCmd.CommandText = "Select * from Authors";&lt;br /&gt;
//Alternative&lt;br /&gt;
&amp;lt;x&amp;gt;Command myCmd = new &amp;lt;x&amp;gt;Command("Select * from Authors", myConn);&lt;br /&gt;
// Using Command with DataReader&lt;br /&gt;
&amp;lt;x&amp;gt;DataReader myReader;&lt;br /&gt;
myReader = myCmd.ExecuteReader();&lt;br /&gt;
// Reading objects&lt;br /&gt;
myReader.Read();      // reads an object at a time sequentially&lt;br /&gt;
// Cleanup&lt;br /&gt;
myReader.Close();&lt;br /&gt;
myConn.Close();&lt;br /&gt;
ADO.Net - command parameters&lt;br /&gt;
==============================&lt;br /&gt;
Instead of using this:&lt;br /&gt;
insertSQL "Insert INTO authors (au_id) VALUES ('txtID.Text')"&lt;br /&gt;
.... where txtID is a from the GUI on the webpage.&lt;br /&gt;
This method can be hacked via SQL Injection. To solve this, Command&lt;br /&gt;
Parameters are used:&lt;br /&gt;
insertSQL "Insert INTO authors (au_id) VALUES (?)"&lt;br /&gt;
cmd.Parameters.Add("?", txtID.Text);&lt;br /&gt;
where cmd is a OleDBCommand, and note that "?" is for OleDB only.&lt;br /&gt;
MySQL or MSSQL may have different symbols or notation for their&lt;br /&gt;
command parameters.&lt;br /&gt;
For MSSQL,&lt;br /&gt;
// don't ever do this!&lt;br /&gt;
//   SqlCommand cmd = new SqlCommand(&lt;br /&gt;
//    "select * from Customers where city = '" + inputCity + "'";&lt;br /&gt;
// 1. declare command object with parameter&lt;br /&gt;
SqlCommand cmd = new SqlCommand(&lt;br /&gt;
"select * from Customers where city = @City", conn);&lt;br /&gt;
// 2. define parameters used in command object&lt;br /&gt;
SqlParameter param  = new SqlParameter();&lt;br /&gt;
param.ParameterName = "@City";&lt;br /&gt;
param.Value         = inputCity;&lt;br /&gt;
// 3. add new parameter to command object&lt;br /&gt;
cmd.Parameters.Add(param);&lt;br /&gt;
&lt;br /&gt;
ADO.Net - Data Binding&lt;br /&gt;
=======================&lt;br /&gt;
Simple Data Binding:&lt;br /&gt;
1) in the aspx page, have something like:&lt;br /&gt;
&amp;lt;asp:Label id="lbLabel" runat="server"&amp;gt;&lt;br /&gt;
There were &amp;lt;%# TransactionCount %&amp;gt;&lt;br /&gt;
&amp;lt;/asp:Label&amp;gt;&lt;br /&gt;
2) In the code behind, have something like:&lt;br /&gt;
private void Page_Load(...){&lt;br /&gt;
TransactionCount = 10;&lt;br /&gt;
this.DataBind();&lt;br /&gt;
Alternative to data bind above is to do this in-code.&lt;br /&gt;
3) private void Page_Load(...){&lt;br /&gt;
TransactionCount = 10;&lt;br /&gt;
lblDynamic.Text = "There were " + TransactionCount.ToString();&lt;br /&gt;
Multiple Binding:&lt;br /&gt;
1. Form an array list from whereever:&lt;br /&gt;
eg. ArrayList fruit = new ArrayList();&lt;br /&gt;
fruit.Add("Kiwi");&lt;br /&gt;
or from database&lt;br /&gt;
2. Define binding for list controls; eg&lt;br /&gt;
MyListBox.DataSource = fruit;&lt;br /&gt;
MyDropDownListBox.DataSource = fruit;&lt;br /&gt;
MyHTMLSelect.DataSource = fruit;&lt;br /&gt;
MyCheckBoxList.DataSource = fruit;&lt;br /&gt;
MyRadioButtonList.DataSource = fruit;&lt;br /&gt;
3. Activate the binding, eg.&lt;br /&gt;
this.DataBind();        // this refers to the current page.&lt;br /&gt;
&lt;br /&gt;
Multiple Binding with hashtables:&lt;br /&gt;
1. Create hashtable with key,val pair&lt;br /&gt;
Hashtable fruit = new Hashtable();&lt;br /&gt;
fruit.Add(1, "Kiwi");&lt;br /&gt;
fruit.Add(2, "Pear");&lt;br /&gt;
2. Binding specific fields&lt;br /&gt;
MyListBox.DataTextField = "Value"  -&amp;gt; put the Value of hastable&lt;br /&gt;
into the Text of the Control&lt;br /&gt;
MyListBox.DataValueField = "Key"  -&amp;gt; put the Key of hastable into&lt;br /&gt;
the value of the Control&lt;br /&gt;
3. Define databinding and activate&lt;br /&gt;
MyListBox.DataSource = fruit;&lt;br /&gt;
4. The result is the following HTML will be rendered:&lt;br /&gt;
&amp;lt;select name="MyListBox" id="MyListBox"&amp;gt;&lt;br /&gt;
&amp;lt;option value="1"&amp;gt;Kiwi&amp;lt;/option&amp;gt;&lt;br /&gt;
Databinding with databases:&lt;br /&gt;
1. Some possible namespaces (when using OleDB):&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Data.OleDb;&lt;br /&gt;
2. Making data using dataset example:&lt;br /&gt;
DataSet ds = new DataSet();&lt;br /&gt;
ds.Tables.Add("Users");&lt;br /&gt;
ds.Tables["Users"].Columns.Add("Name");&lt;br /&gt;
ds.Tables["Users"].Columns.Add("Country");&lt;br /&gt;
DataRow dr = ds.Tables["Users"].NewRow();&lt;br /&gt;
dr["Name"] = "John";&lt;br /&gt;
dr["Country"] = "Uganda";&lt;br /&gt;
ds.Tables["Users"].Rows.Add(rd);&lt;br /&gt;
3. Bind table to data source:&lt;br /&gt;
lstUser.DataSource = ds.Tables["Users"];&lt;br /&gt;
lstUser.DataTextField = "Name";&lt;br /&gt;
or Bind whole DataSet to data source:&lt;br /&gt;
lstUser.DataSource = ds;&lt;br /&gt;
lstUser.DataMember = "Users";&lt;br /&gt;
lstUser.DataTextField = "Name";&lt;br /&gt;
4. Activate the Binding:&lt;br /&gt;
this.DataBind();&lt;br /&gt;
or to bind just the list box&lt;br /&gt;
lstItems.DataBind()&lt;br /&gt;
ADO.Net - Data Binding - DataList&lt;br /&gt;
=====================================&lt;br /&gt;
1. Code Behind:&lt;br /&gt;
public class BasicAuthorList: Page&lt;br /&gt;
{&lt;br /&gt;
protected DataList listAuthor;&lt;br /&gt;
// (Initialisation code omitted)&lt;br /&gt;
private string connectString ="Provider ......."&lt;br /&gt;
private void Page_Load(Object sender, EventArgs e)&lt;br /&gt;
{&lt;br /&gt;
string SQL = "SELECT * FROM AUTHORS";&lt;br /&gt;
OleDbConnection con = new OleDbConnection (connectString);&lt;br /&gt;
OleDbCommand cmd = new OleDbCommand(SQL, con);&lt;br /&gt;
OleDbAdapter adapt = new OleDbAdapter(cmd);&lt;br /&gt;
DataSet pubs = new DataSet();&lt;br /&gt;
con.Open();&lt;br /&gt;
adapter.Fill(pubs, "Authors");&lt;br /&gt;
con.Close();&lt;br /&gt;
//Bind the DataSet and activate the data bindings for the page&lt;br /&gt;
listAuthor.DataSource = pubs.Tables["Authors"];&lt;br /&gt;
this.DataBind();&lt;br /&gt;
2. ASPX DataList template&lt;br /&gt;
&amp;lt;asp:DataList id=listAuthor runat="server"&amp;gt;&lt;br /&gt;
&amp;lt;ItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;font face="Verdana" size="2"&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;%# DataBinder.Eval(Container.DataItem, "au_fname") %&amp;gt;&lt;br /&gt;
&amp;lt;%# DataBinder.Eval(Container.DataItem, "au_lname") %&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt; Address: &amp;lt;%# DataBinder.Eval(Container.DataItem, "address") %&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt; City: &amp;lt;%# DataBinder.Eval(Container.DataItem, "city") %&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;/asp:DataList&amp;gt;&lt;br /&gt;
3. Formating Values - for DataBinder&lt;br /&gt;
eg    DataBinder.Eval(Container.DataItem, "Price", "{0:C}")&lt;br /&gt;
{0:C}    Currency&lt;br /&gt;
{0:E}    Scientific (Exponential)&lt;br /&gt;
{0:P}    Percentage&lt;br /&gt;
{0:F?}   Fixed Decimal&lt;br /&gt;
see MSDN Help for more.&lt;br /&gt;
4. Adding different styles to Templates&lt;br /&gt;
a) Manual option - hand coding on aspx file&lt;br /&gt;
&amp;lt;HeaderTemplate&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; title &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;/HeaderTemplate&amp;gt;&lt;br /&gt;
&amp;lt;ItemTemplate&amp;gt;&lt;br /&gt;
(Item style1)&lt;br /&gt;
&amp;lt;/ItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;AlternatingItemTemplate&amp;gt;&lt;br /&gt;
(Item style2)&lt;br /&gt;
&amp;lt;/AlternatingItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;SeparatorTemplate&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; title &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;/SeparatorTemplate&amp;gt;&lt;br /&gt;
&amp;lt;FooterTemplate&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; title &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;/FooterTemplate&amp;gt;&lt;br /&gt;
b) Using VS.Net right-click DataList properties&lt;br /&gt;
c) AutoFormat link from the DataList properties&lt;br /&gt;
d) To make columns and rows, check out the RepeatDirection and&lt;br /&gt;
RepeatColumns properties.&lt;br /&gt;
&lt;br /&gt;
ADO.Net - Data Binding - DataGrid&lt;br /&gt;
=====================================&lt;br /&gt;
1) DataList may have columns and rows, but DataGrid has columns such&lt;br /&gt;
that the columns&lt;br /&gt;
correspond to certain fields of the data item; eg phone - city - zip&lt;br /&gt;
code as different&lt;br /&gt;
columns.&lt;br /&gt;
2) Features include: automatic paging, sorting, editing, selecting.&lt;br /&gt;
3) Examples that show the Columns tag and the use of styles:&lt;br /&gt;
&amp;lt;asp: DataGrid id=gridauthor runat="server" AutoGenerateColumns="false"&lt;br /&gt;
BorderColor="#..." BorderStyle="None" CellSpacing="2"&lt;br /&gt;
BackColor="#..." CellPadding="3" BorderWidth="1px"&amp;gt;&lt;br /&gt;
&amp;lt;FooterStyle ForeColor="#..."  BackColor="#..." &amp;gt;&amp;lt;/FooterStyle&amp;gt;&lt;br /&gt;
&amp;lt;HeaderStyle ForeColor="#..."  BackColor="#..." &amp;gt;&amp;lt;/HeaderStyle&amp;gt;&lt;br /&gt;
&amp;lt;ItemStyle ForeColor="#..."  BackColor="#..." &amp;gt;&amp;lt;/ItemStyle&amp;gt;&lt;br /&gt;
&amp;lt;Columns&amp;gt;&lt;br /&gt;
&amp;lt;asp:TemplateColumn HeaderText="AuthorName"&amp;gt;&lt;br /&gt;
&amp;lt;ItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;%# DataBinder.Eval(Container.DataItem, "au_fname") %&amp;gt;&lt;br /&gt;
&amp;lt;%# DataBinder.Eval(Container.DataItem, "au_lname") %&amp;gt;&lt;br /&gt;
&amp;lt;/ItemTemplate&amp;gt;   &lt;br /&gt;
&amp;lt;/asp:TemplateColumn&amp;gt;&lt;br /&gt;
&amp;lt;/Columns&amp;gt;&lt;br /&gt;
&amp;lt;/asp:DataGrid&amp;gt;&lt;br /&gt;
4) DataGrid has special columns including:&lt;br /&gt;
TemplateColumn - contents here include &amp;lt;ItemTemplate&amp;gt; and other stuff&lt;br /&gt;
that can go into&lt;br /&gt;
DataList.&lt;br /&gt;
BoundColumn - a particular field from database&lt;br /&gt;
ButtonColumn&lt;br /&gt;
EditCommandColumn&lt;br /&gt;
HyperlinkColumn&lt;br /&gt;
All these columns should exist within &amp;lt;Columns&amp;gt; ... &amp;lt;/Columns&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ADO.Net - Data Binding - Repeater&lt;br /&gt;
=====================================&lt;br /&gt;
Repeater has not much formatting by itself. It depends on formatting provided&lt;br /&gt;
in the html. Example:&lt;br /&gt;
&amp;lt;asp:Repeater id=repeatauthor runat="server"&amp;gt;&lt;br /&gt;
&amp;lt;HeaderTemplate&amp;gt; &amp;lt;table&amp;gt; &amp;lt;/HeaderStyle&amp;gt;&lt;br /&gt;
&amp;lt;ItemTemplate&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;%# DataBinder.Eval(Container.DataItem, "au_fname") %&amp;gt;&lt;br /&gt;
&amp;lt;/ttr&amp;gt;&amp;lt;/ItemTemplate&amp;gt;   &lt;br /&gt;
&amp;lt;FooterTemplate&amp;gt; &amp;lt;/table&amp;gt; &amp;lt;/FooterStyle&amp;gt;&lt;br /&gt;
&amp;lt;/asp:DataGrid&amp;gt;&lt;br /&gt;
ADO.Net - Styles and Templates summary&lt;br /&gt;
=======================================&lt;br /&gt;
Styles  &lt;br /&gt;
DataList             DataGrid             Repeater&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
AlternatingItemStyle AlternatingItemStyle None&lt;br /&gt;
EditItemStyle         EditItemStyle &lt;br /&gt;
FooterStyle             FooterStyle &lt;br /&gt;
HeaderStyle             HeaderStyle &lt;br /&gt;
ItemStyle             ItemStyle &lt;br /&gt;
SelectedItemStyle     SelectedItemStyle &lt;br /&gt;
SeparatorStyle         PagerStyle &lt;br /&gt;
&lt;br /&gt;
Template  &lt;br /&gt;
DataList             DataGrid*         Repeater&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
AlternatingItemTemplate FooterTemplate     AlternatingItemTemplate&lt;br /&gt;
EditItemTemplate     HeaderTemplate     FooterTemplate&lt;br /&gt;
FooterTemplate         ItemTemplate     ItemTemplate&lt;br /&gt;
HeaderTemplate         EditItemTemplate SeparatorTemplate&lt;br /&gt;
ItemTemplate  &lt;br /&gt;
SelectedItemTemplate  &lt;br /&gt;
SeparatorTemplate  &lt;br /&gt;
* only supported by Template column&lt;br /&gt;
1) Do not bind the grid in the Page.Load event handler, otherwise info is&lt;br /&gt;
lost about which button user clicked or item selected.&lt;br /&gt;
private void Page_Load......&lt;br /&gt;
if(!this.PostBack) {&lt;br /&gt;
DataSet ds = GetDataSet();&lt;br /&gt;
BindGrid(ds);&lt;br /&gt;
.........&lt;br /&gt;
}&lt;br /&gt;
private DataSet GetDataSet(){&lt;br /&gt;
string SQL = "...."&lt;br /&gt;
OldDbConnection ...&lt;br /&gt;
OldDbCommand cmd =&lt;br /&gt;
OleDbAdapter = ...&lt;br /&gt;
DataSet dsPubs = ...&lt;br /&gt;
adapter.Fill(dsPubs, "Authors");&lt;br /&gt;
con.Close();&lt;br /&gt;
return dsPubs;&lt;br /&gt;
}&lt;br /&gt;
private void BindGrid(DataSet ds){&lt;br /&gt;
gridAuthor.DataSource = ds.Table["Authors"];&lt;br /&gt;
this.DataBind();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Windows Service Applications&lt;br /&gt;
=============================&lt;br /&gt;
1. Do not have any in/output to screen or Windows, or it will crash the app.&lt;br /&gt;
2. Error messages should be logged in the Windows event log rather&lt;br /&gt;
than raised in the user interface.&lt;br /&gt;
3. To control, use Services Control Manager, or Server Explorer, or&lt;br /&gt;
the ServiceController class (use this&lt;br /&gt;
to control the service from another app).&lt;br /&gt;
4. States of the service include: start, stop, pause, resume&lt;br /&gt;
Corresponding methods in code: OnStart, OnStop, OnPause,&lt;br /&gt;
OnContinue, OnShutdown, OnCustomCommand, OnPowerEvent.&lt;br /&gt;
5. Two types of services: Win32OwnProcess, Win32ShareProcess.&lt;br /&gt;
6. VisualStudio has installation components that can install&lt;br /&gt;
resources, register the service and let Services Controller&lt;br /&gt;
Manager know. Add these installers to the app and also create a&lt;br /&gt;
separate setup project.&lt;br /&gt;
7. Must inherit from System.ServiceProcess.ServiceBase class. The&lt;br /&gt;
project must contain installation components.&lt;br /&gt;
To create the Service:&lt;br /&gt;
- set ServiceName property&lt;br /&gt;
- create installers&lt;br /&gt;
- override methods for OnStart and OnStop.&lt;br /&gt;
8. System.ServiceProcess.ServiceProcessInstaller and&lt;br /&gt;
System.ServiceProcess.ServiceInstaller&lt;br /&gt;
—You use these classes to install and uninstall your service.&lt;br /&gt;
9. Execution Process:&lt;br /&gt;
Add Installers in project&lt;br /&gt;
Build&lt;br /&gt;
Install: installutil yourproject.exe    / Uninstall: installutil&lt;br /&gt;
/u yourproject.exe&lt;br /&gt;
Start the Service&lt;br /&gt;
10. Debugging:&lt;br /&gt;
Install service&lt;br /&gt;
Start service&lt;br /&gt;
In VS, Debug-&amp;gt;Process&lt;br /&gt;
Click Show System Processes&lt;br /&gt;
Attach process&lt;br /&gt;
add any break points&lt;br /&gt;
use Services Control Manager to control the service.&lt;br /&gt;
11. To add Installers:&lt;br /&gt;
-In Solution Explorer, go to Design View of the service.&lt;br /&gt;
-Click on background of designer and AddInstaller.&lt;br /&gt;
-A new class, ProjectInstaller, and two installation components,&lt;br /&gt;
ServiceProcessInstaller and ServiceInstaller,&lt;br /&gt;
are added to your project, and property values for the service are&lt;br /&gt;
copied to the components.&lt;br /&gt;
-Click the ServiceInstaller component and verify that the value&lt;br /&gt;
of the ServiceName property is set to the&lt;br /&gt;
same value as the ServiceName property on the service itself.&lt;br /&gt;
-To determine how your service will be started, click the&lt;br /&gt;
ServiceInstaller component and set the StartType property&lt;br /&gt;
to the appropriate value. { Manual, Automatic, Disabled }&lt;br /&gt;
- To determine the security context in which your service will&lt;br /&gt;
run, click the ServiceProcessInstaller&lt;br /&gt;
component and set the appropriate property values. For more&lt;br /&gt;
information, see How to: Specify the Security Context for Services.&lt;br /&gt;
- Override any methods for which you need to perform custom&lt;br /&gt;
processing. For more information, see How to: Override Default Methods&lt;br /&gt;
on Installation Components.&lt;br /&gt;
- Perform steps 1 through 7 for each additional service in your project.&lt;br /&gt;
Note: For each additional service in your project, you must&lt;br /&gt;
add an additional ServiceInstaller component&lt;br /&gt;
to the project's ProjectInstaller class. The ServiceProcessInstaller&lt;br /&gt;
component added in step&lt;br /&gt;
three works with all of the individual service installers in the project.&lt;br /&gt;
- Create your setup project and custom action to deploy and&lt;br /&gt;
install your service.&lt;br /&gt;
For more information on setup projects, see Setup Projects.&lt;br /&gt;
- After you add installers to your application, the next step is to&lt;br /&gt;
create a setup project that will install&lt;br /&gt;
the compiled project files and run the installers needed to install&lt;br /&gt;
your service. To create a complete&lt;br /&gt;
setup project, you must add the service project's output to the&lt;br /&gt;
setup project and&lt;br /&gt;
then add a custom action to have your service installed. For more&lt;br /&gt;
information on setup projects, see Setup Projects. For more&lt;br /&gt;
information on custom actions, see Walkthrough: Creating a Custom&lt;br /&gt;
Action.&lt;br /&gt;
(see VS Setup Projects for more details)&lt;br /&gt;
&lt;br /&gt;
VS Setup Projects&lt;br /&gt;
=====================&lt;br /&gt;
1. Design, code, build your project in VS Studio say project ProjA in&lt;br /&gt;
solution SolnA.&lt;br /&gt;
2. Create the setup project SetupA, in SolnA: Add Project -&amp;gt; New&lt;br /&gt;
Project -&amp;gt; Other Project Types -&amp;gt; Setup and Deployment.&lt;br /&gt;
3. Right click setupA -&amp;gt; Install -&amp;gt; Add Project Output. Select ProjA&lt;br /&gt;
and choose "Primary Output".&lt;br /&gt;
4. Right click setupA -&amp;gt; View -&amp;gt; Custom Actions.&lt;br /&gt;
5. Right click on Custom Actions -&amp;gt; Add Custom Option. Select&lt;br /&gt;
Application Folder -&amp;gt; Primary output from ProjA.&lt;br /&gt;
6. Build.&lt;br /&gt;
7. The msi and exe file will be created.&lt;br /&gt;
&lt;br /&gt;
Understanding ADO.Net - from AppDev video tutorial&lt;br /&gt;
====================================================&lt;br /&gt;
Object Model:&lt;br /&gt;
Connected Object (Specific to DB engine or provider)&lt;br /&gt;
-&amp;gt; .Net Data Provider (incl. MySql.Data.MySqlClient or&lt;br /&gt;
SystemData.ODBC|OleDB|SqlClient|OracleClient)&lt;br /&gt;
-&amp;gt; Connection: Transaction&lt;br /&gt;
-&amp;gt; Command: Parameters (eg to execute some command)&lt;br /&gt;
-&amp;gt; DataReader:&lt;br /&gt;
-&amp;gt; DataAdapter:&lt;br /&gt;
-&amp;gt; Fills DataTable: SelectComm&lt;br /&gt;
-&amp;gt; Updates Database: InsertComm, UpdateComm, DeleteComm&lt;br /&gt;
DisConnected Object (can work with data in a disconnected state)&lt;br /&gt;
-&amp;gt; DataSet (analogous to Database) &amp;lt;-&amp;gt; XML&lt;br /&gt;
-&amp;gt; DataTableCollection&lt;br /&gt;
-&amp;gt; DataTable:&lt;br /&gt;
-&amp;gt; DataRowCollection - storing the data&lt;br /&gt;
-&amp;gt; DataColumnCollection - names and properties of columns&lt;br /&gt;
-&amp;gt; ConstraintCollection - eg unique key or foreign key constraints.&lt;br /&gt;
-&amp;gt; DataRelationCollection&lt;br /&gt;
-&amp;gt; DataView&lt;br /&gt;
-&amp;gt; Row Filter&lt;br /&gt;
-&amp;gt; Sort&lt;br /&gt;
-&amp;gt; Extended support for Data Binnding&lt;br /&gt;
-&amp;gt; DataTableReader&lt;br /&gt;
-&amp;gt; A DataReader for DataTables and DataSets&lt;br /&gt;
-&amp;gt; Fast forward only reading&lt;br /&gt;
-&amp;gt; resilient to adding or deleting rows while reading&lt;br /&gt;
&lt;br /&gt;
... to be continued at Data Caching Object&lt;br /&gt;
Using MySQL in Visual Studio&lt;br /&gt;
=============================&lt;br /&gt;
1. View -&amp;gt; Server Explorer&lt;br /&gt;
2. Look for database server and connect&lt;br /&gt;
Configuring MySQL with ASP.Net&lt;br /&gt;
===============================&lt;br /&gt;
It is easy to use MySQL with ASP.Net. becasue by default the local&lt;br /&gt;
ASP.Net enables you with FULL TRUST permission.&lt;br /&gt;
This section shows how to configure ASP.Net to work with MySQL where&lt;br /&gt;
the ASP.Net is stored in a ISP's server,&lt;br /&gt;
which usually uses MEDIUM TRUST, not FULL TRUST.&lt;br /&gt;
To the SQL administrator:&lt;br /&gt;
1. There are two options, one is to modify the web_mediumtrust.config;&lt;br /&gt;
the other option is to copy and rename the config file.&lt;br /&gt;
The web_mediumtrust.config is located typically in&lt;br /&gt;
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\&lt;br /&gt;
Add the SOCKPermission to this file.&lt;br /&gt;
&amp;lt;SecurityClass .............&lt;br /&gt;
&amp;lt;SecurityClass Name="SocketPermission"&lt;br /&gt;
Description="System.Net.SocketPermission, System, Version=2.0.0.0,&lt;br /&gt;
Culture=neutral, PublicKeyToken=b77a5c561934e089"/&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;IPermission&lt;br /&gt;
class="SocketPermission"&lt;br /&gt;
version="1"&lt;br /&gt;
Unrestricted="true"/&amp;gt;&lt;br /&gt;
2. If we choose the second option in step 1. to make a new file and&lt;br /&gt;
called web_mediumMySQLtrust.config, then we need&lt;br /&gt;
to register this in the&lt;br /&gt;
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config with&lt;br /&gt;
the following line:&lt;br /&gt;
&amp;lt;trustLevel name="Medium" policyFile="web_mediumtrust.config" /&amp;gt;&lt;br /&gt;
.... already there&lt;br /&gt;
&amp;lt;trustLevel name="MediumMySQL"&lt;br /&gt;
policyFile="web_mediumMySQLtrust.config" /&amp;gt;    .... add this new one&lt;br /&gt;
Also in the same file, add this within the &amp;lt;system.web&amp;gt;&lt;br /&gt;
&amp;lt;trust level="Medium" originUrl="" /&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;trust level="MediumMySQL" originUrl="" /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To the Developer:&lt;br /&gt;
1. In the web application, in the web.config file, insert the line&lt;br /&gt;
about &amp;lt;trust&amp;gt; just before &amp;lt;/system.web&amp;gt;&lt;br /&gt;
eg.&lt;br /&gt;
&amp;lt;system.web&amp;gt;&lt;br /&gt;
......&lt;br /&gt;
......&lt;br /&gt;
&amp;lt;trust level="Medium" originUrl="" /&amp;gt;&lt;br /&gt;
&amp;lt;/system.web&amp;gt;&lt;br /&gt;
&lt;br /&gt;
DropDownList&lt;br /&gt;
============&lt;br /&gt;
To add first element, add a ListItem and the property&lt;br /&gt;
AppendDataBoundItems set to true.&lt;br /&gt;
Eg.&lt;br /&gt;
&amp;lt;asp:dropdownlist id="suburbDropList"  AppendDataBoundItems="true"&lt;br /&gt;
AutoPostBack="True" runat="server" &amp;gt;&lt;br /&gt;
&amp;lt;asp:ListItem Text="(Select a Suburb)" Value="" /&amp;gt;&lt;br /&gt;
&amp;lt;/asp:dropdownlist&amp;gt;&lt;br /&gt;
DataGrid - Sorting&lt;br /&gt;
===================&lt;br /&gt;
To allow for sorting on the DataGrid, the following are needed.&lt;br /&gt;
1. Right click on the GUI design of the DataGrid and set&lt;br /&gt;
"AllowSorting" to "true".&lt;br /&gt;
2. Add the following in the aspx code file in the DataGrid item:&lt;br /&gt;
OnPageIndexChanging="PageChangeFunction" OnSorting="SortingFunction"&lt;br /&gt;
3. Set property AutoGenerateColumns to true,&lt;br /&gt;
i.e.TestMenu.AutoGenerateColumns = true;&lt;br /&gt;
GridView&lt;br /&gt;
==========&lt;br /&gt;
Namespace: System.Web.UI.WebControls&lt;br /&gt;
Assembly: System.Web (in system.web.dll)&lt;br /&gt;
Version: since .Net 2.0&lt;br /&gt;
Summary: Displays the values of a data source in a table where each&lt;br /&gt;
column represents a field and each row represents a record. The&lt;br /&gt;
GridView control allows you to select, sort, and edit these items.&lt;br /&gt;
Event: OnRowDataBound()&lt;br /&gt;
- can be used to set the width of the grid view once data is bound.&lt;br /&gt;
- Example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
protected void gvShop_RowDataBound(object sender, GridViewRowEventArgs e)&lt;br /&gt;
{&lt;br /&gt;
if (e.Row.RowType != DataControlRowType.DataRow) return;&lt;br /&gt;
GridView gv = (GridView)sender;&lt;br /&gt;
//e.Row.Cells[0].Width = 100;   // Free Size&lt;br /&gt;
e.Row.Cells[1].Width = 100;     //name&lt;br /&gt;
e.Row.Cells[2].Width = 300;     //address&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GridView - Sorting&lt;br /&gt;
===================&lt;br /&gt;
This describes how to implement the sorting event of a GridView object.&lt;br /&gt;
1. Sorting must be allowed in the GridView object. On the aspx page,&lt;br /&gt;
the GridView object must look something like:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;asp:GridView ID="gvShop" runat="server" AllowSorting="True"&lt;br /&gt;
OnRowDataBound="gvShop_RowDataBound"&lt;br /&gt;
OnPageIndexChanging="gvShop_PageIndexChanging"&lt;br /&gt;
OnSorting="gvShop_Sorting" &amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The important properties are AllowSorting set to True and OnSorting&lt;br /&gt;
specified with the name of the method that performs the sorting. By&lt;br /&gt;
Default, the event name is given by the object ID (gvShop) combined&lt;br /&gt;
with the event (Sorting) hence the name gvShop_Sorting.&lt;br /&gt;
2. Before implementing the GridView sorting event, let us define two&lt;br /&gt;
strings at the start of the class.&lt;br /&gt;
private const string ASCENDING = " ASC";&lt;br /&gt;
private const string DESCENDING = " DESC";&lt;br /&gt;
These specific strings ASC and DESC are required in the sorting&lt;br /&gt;
expressions later.&lt;br /&gt;
3. Define the property called gvSortDirection - to hold the state of&lt;br /&gt;
whether it is currently sorted in ascending or descending fashion.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
public SortDirection gvSortDirection        {&lt;br /&gt;
get {&lt;br /&gt;
if (ViewState["sortDirection"] == null)&lt;br /&gt;
ViewState["sortDirection"] = SortDirection.Ascending;&lt;br /&gt;
return (SortDirection)ViewState["sortDirection"];&lt;br /&gt;
}&lt;br /&gt;
set { ViewState["sortDirection"] = value; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
4. Finally, the sorting event is implemented as below:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
protected void gvShop_Sorting(object sender, GridViewSortEventArgs e)&lt;br /&gt;
{&lt;br /&gt;
string sortExpression = e.SortExpression;&lt;br /&gt;
string strSort = null;&lt;br /&gt;
if (gvSortDirection == SortDirection.Ascending)&lt;br /&gt;
{&lt;br /&gt;
gvSortDirection = SortDirection.Descending;&lt;br /&gt;
strSort = sortExpression + " " + DESCENDING;&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
gvSortDirection = SortDirection.Ascending;&lt;br /&gt;
strSort = sortExpression + " " + ASCENDING;&lt;br /&gt;
}&lt;br /&gt;
DataTable dc1 = (DataTable)gvShop.DataSource;&lt;br /&gt;
dc1.DefaultView.Sort = strSort;&lt;br /&gt;
gvShop.DataBind();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A few things to note:&lt;br /&gt;
- when the user press on the header of the column, the data will be&lt;br /&gt;
sorted in ascending, then descending way alternately. This is possible&lt;br /&gt;
by the if loop which changes the direction of the sorting each time it&lt;br /&gt;
is sorted.&lt;br /&gt;
- the strSort is made up of the name of the column to be sorted, and&lt;br /&gt;
whether it is ascending or descending.&lt;br /&gt;
- The most important step is to assign the DefaultView.Sort = strSort.&lt;br /&gt;
Note that in this case, the GridView was originally sourced from a&lt;br /&gt;
DataTable, hence in this example, the DataSource is casted into a&lt;br /&gt;
DataTable dc1 object. Finally the GridView need to be binded.&lt;br /&gt;
&lt;br /&gt;
GridView - Selecting Rows, Clickable Rows&lt;br /&gt;
==========================================&lt;br /&gt;
In ASP.Net, a simple GridView presents a table with rows of data, in&lt;br /&gt;
different columns. All the data are usually obtained from some&lt;br /&gt;
DataSource which may come from a database. This section shows how to&lt;br /&gt;
add an Extra column where all the entries in this column are clickable&lt;br /&gt;
and is linked to the row on which it is clicked. An example of a&lt;br /&gt;
Gridview with the Extra column as the first column:&lt;br /&gt;
clickable   Col 1     Col 2&lt;br /&gt;
select    John      Smith&lt;br /&gt;
select    Jane      Doe&lt;br /&gt;
select    Alice     Wong&lt;br /&gt;
select    Bob       Chan&lt;br /&gt;
In the example, the first row are column names. Each of the "select"&lt;br /&gt;
words are clickable and can be used to launch an action, and identify&lt;br /&gt;
which row was clicked. The implement of this involves the following&lt;br /&gt;
steps:&lt;br /&gt;
1. On the aspx page, the code looks like:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;asp:GridView ID="gvShop" runat="server" AllowSorting="True"&lt;br /&gt;
OnRowDataBound="gvShop_RowDataBound"&lt;br /&gt;
OnPageIndexChanging="gvShop_PageIndexChanging"&lt;br /&gt;
OnSorting="gvShop_Sorting" &amp;gt;&lt;br /&gt;
&amp;lt;RowStyle BackColor="#FFFBD6" ForeColor="#333333" /&amp;gt;&lt;br /&gt;
&amp;lt;SelectedRowStyle BackColor="#FFCC66" Font-Bold="True"&lt;br /&gt;
ForeColor="Navy" /&amp;gt;&lt;br /&gt;
&amp;lt;Columns&amp;gt;&lt;br /&gt;
&amp;lt;asp:BoundField ReadOnly="True" &amp;gt;&lt;br /&gt;
&amp;lt;ItemStyle Width="0px" /&amp;gt;&lt;br /&gt;
&amp;lt;/asp:BoundField&amp;gt;&lt;br /&gt;
&amp;lt;asp:TemplateField HeaderText="clickable"&amp;gt;&lt;br /&gt;
&amp;lt;ItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;asp:LinkButton ID="lnk_ShopName" runat="server" Text="select"&lt;br /&gt;
Tooltip="some tip"&lt;br /&gt;
CommandArgument='&amp;lt;%# Eval("Col 1") %&amp;gt;'&lt;br /&gt;
style="background-image: url(images/icon.gif);"&lt;br /&gt;
OnClick="lnk_ShopName_Click"&amp;gt;&lt;br /&gt;
&amp;lt;/asp:LinkButton&amp;gt;&lt;br /&gt;
&amp;lt;/ItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;/asp:TemplateField&amp;gt;&lt;br /&gt;
&amp;lt;/Columns&amp;gt;&lt;br /&gt;
&amp;lt;/asp:GridView&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The important things to note are the following:&lt;br /&gt;
- The &amp;lt;asp:TemplateField&amp;gt; tag - see the word "clickable" as the name&lt;br /&gt;
of the column. The TemplateField can be generated from the GUI in the&lt;br /&gt;
Design mode of the aspx page, by right clicking the GridView rectangle&lt;br /&gt;
and right clicking the top right corner and select "edit columns".&lt;br /&gt;
- The &amp;lt;ItemTemplate&amp;gt; tag - this contain a LinkButton object whose Text&lt;br /&gt;
is "select". So the words "select" is displayed in the GridView&lt;br /&gt;
column.&lt;br /&gt;
- The CommandArgument is very important, the argument inside Eval,&lt;br /&gt;
must be exactly the same name as one of the column names. This means&lt;br /&gt;
that when a row is clicked, the CommandArgument will take the value at&lt;br /&gt;
that row of the specified column. In this example, Eval("Col 1") means&lt;br /&gt;
either John, Jane, Alice or Bob will be taken along the event.&lt;br /&gt;
- Instead of the words "select", an image or icon can be used, and&lt;br /&gt;
this is done by the background-image attribute in the LinkButton.&lt;br /&gt;
- For the event to do something it has to be linked. Here the&lt;br /&gt;
LinkButton is connected to the function called "lnk_ShopName" which is&lt;br /&gt;
called whenever an event occurs.&lt;br /&gt;
2. Implementing the event or action on the aspx.cs page. In this&lt;br /&gt;
example, the event triggers the method called "lnk_ShopName" to be&lt;br /&gt;
executed. The method can be something like:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
protected void lnk_ShopName_Click(object sender, EventArgs e)&lt;br /&gt;
{&lt;br /&gt;
System.Web.UI.WebControls.LinkButton linkBut;&lt;br /&gt;
linkBut = (LinkButton)sender;&lt;br /&gt;
string sName = linkBut.CommandArgument;&lt;br /&gt;
// do something with sName&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The information about which row is clicked can be extracted from the&lt;br /&gt;
sender object.&lt;br /&gt;
Since the Control was a LinkButton, the sender is cast into the LinkButton.&lt;br /&gt;
The CommandArgument will contain the data at the row that was clicked,&lt;br /&gt;
at the column specified in the Eval argument on the aspx page. In this&lt;br /&gt;
case, Col 1 was chosen as the column.&lt;br /&gt;
&lt;br /&gt;
WebService in ASP.Net&lt;br /&gt;
======================&lt;br /&gt;
*.asmx      - web service file&lt;br /&gt;
WSDL        - Web Service Description Language, describes the methods&lt;br /&gt;
and parameters in a web service.&lt;br /&gt;
The elements of WSDL are: definitions, types, message,&lt;br /&gt;
portType, binding, service.&lt;br /&gt;
SOAP        - way to encode info to pass to web service&lt;br /&gt;
HTTP        - protocol through which SOAP messages are sent&lt;br /&gt;
DISCO       - discovery standard that contains links to web services&lt;br /&gt;
UDDI        - business registry that lists all info about companies&lt;br /&gt;
and web services they provide, with&lt;br /&gt;
URLs for their WSDL contracts and DISCO.&lt;br /&gt;
Data types: Basic / primitives, Enumerations, DataSets, XmlNode,&lt;br /&gt;
Custom Objects, Arrays&lt;br /&gt;
&lt;br /&gt;
Testing the web service&lt;br /&gt;
------------------------&lt;br /&gt;
http://&amp;lt;domain&amp;gt;/&amp;lt;webservice&amp;gt;.asmx      -&amp;gt; to view the web service directly&lt;br /&gt;
http://&amp;lt;domain&amp;gt;/&amp;lt;webservice&amp;gt;.asmx?WSDL -&amp;gt; to view the WSDL.&lt;br /&gt;
http://&amp;lt;domain&amp;gt;/&amp;lt;webservice&amp;gt;.asmx?op=&amp;lt;methodName&amp;gt;      -&amp;gt; to access&lt;br /&gt;
the web service method directly&lt;br /&gt;
The use of web services in C# ASP.Net is illustrated with the example below:&lt;br /&gt;
----------------------------------&lt;br /&gt;
1.&amp;lt;%@ WebService Language="C#" Class="Util" %&amp;gt;&lt;br /&gt;
2. using System.Web.Services;&lt;br /&gt;
3. using System;&lt;br /&gt;
4. [WebService(Namespace="&lt;a href="http://www.contoso.com/"&gt;http://www.contoso.com/&lt;/a&gt;")]&lt;br /&gt;
5. public class Util: WebService&lt;br /&gt;
6. {&lt;br /&gt;
7.     [ WebMethod]&lt;br /&gt;
8.     public long Multiply(int a, int b)&lt;br /&gt;
9.     {&lt;br /&gt;
10.         return a * b;&lt;br /&gt;
11.     }&lt;br /&gt;
12. }&lt;br /&gt;
----------------------------------&lt;br /&gt;
or&lt;br /&gt;
----------------------------------&lt;br /&gt;
in file: Util.asmx&lt;br /&gt;
1.«%@ WebService Language="C#" CodeBehind="Util.asmx.cs" Class="Util" %»&lt;br /&gt;
in file: Util.asmx.cs&lt;br /&gt;
2. using System.Web.Services;&lt;br /&gt;
3. using System;&lt;br /&gt;
4. [WebService(Namespace="&lt;a href="http://www.contoso.com/"&gt;http://www.contoso.com/&lt;/a&gt;", Description="test utility")]&lt;br /&gt;
5. public class Util: WebService&lt;br /&gt;
6. {&lt;br /&gt;
7.     [WebMethod(Description=" test a method "]&lt;br /&gt;
8.     public long Multiply(int a, int b)&lt;br /&gt;
9.     {&lt;br /&gt;
10.         return a * b;&lt;br /&gt;
11.     }&lt;br /&gt;
12. }&lt;br /&gt;
----------------------------------&lt;br /&gt;
1. Declare the webservice using «%@ WebService....&lt;br /&gt;
Option 1: Place the above code inside *.asmx file with the C# code.&lt;br /&gt;
Option 2: Put only the &amp;lt;%@ WebService in the asmx class and put the C#&lt;br /&gt;
code somewhere else.&lt;br /&gt;
Then the declaration would be:&lt;br /&gt;
&amp;lt;%@ WebService Language="C#" Class="MyName.MyWebService,MyAssembly" %&amp;gt;&lt;br /&gt;
... where MyAssembly is the name of the assembly.&lt;br /&gt;
2. Deriving the WebService class - this is optional. Lines 2,5.&lt;br /&gt;
3. Apply WebService attribute and specify domain to avoid confusion&lt;br /&gt;
with other webservices.&lt;br /&gt;
see line 4.&lt;br /&gt;
4. Define the web service method using [ WebMethod ] - see line 7.&lt;br /&gt;
5. State Management for Web Services is achived by deriving from the&lt;br /&gt;
WebService class. It provides&lt;br /&gt;
access to &lt;a href="http://asp.net/"&gt;ASP.NET&lt;/a&gt; objects such as:&lt;br /&gt;
Session     - client specific state information&lt;br /&gt;
Application - used to store data globally and available to all clients&lt;br /&gt;
Server      - utility functions&lt;br /&gt;
User        - info about current client including authentication&lt;br /&gt;
Context     - provides access to Request, Response and Cache&lt;br /&gt;
7. Storing and access state in a client session:&lt;br /&gt;
Declare: [ WebMethod(EnableSession=true) ]&lt;br /&gt;
Store:   Session["MyServiceUsage"] = 1;&lt;br /&gt;
Access:  Session["MyServiceUsage"] = ((int) Session["MyServiceUsage"]) + 1;&lt;br /&gt;
8. Storing and access state in Web application hosting the Web service:&lt;br /&gt;
Declare: [ WebMethod ]&lt;br /&gt;
Store:   Application["appMyServiceUsage"] = 1;&lt;br /&gt;
Access:  Application["appMyServiceUsage"] =  ((int)&lt;br /&gt;
Application["appMyServiceUsage"]) + 1;&lt;br /&gt;
&lt;br /&gt;
ASP.Net Custom Control&lt;br /&gt;
=======================&lt;br /&gt;
The following describes Custom Control for web applications (*.aspx).&lt;br /&gt;
The Custom Control for console&lt;br /&gt;
applications are similar, but not exactly.&lt;br /&gt;
1. To add a user control, right click on the web application project&lt;br /&gt;
in the Solution Explorer. Click&lt;br /&gt;
New Item, then choose Web User Control, and name it WUC.&lt;br /&gt;
&lt;br /&gt;
2. In Visual Studio, this will auto create 3 files:&lt;br /&gt;
- WUC.ascx - with Design and Code view&lt;br /&gt;
- WUC.ascx.cs - the code to be edited or added.&lt;br /&gt;
- WUC.ascx.designer.cs&lt;br /&gt;
3. Put the collection of controls in your custom control withing the&lt;br /&gt;
WUC.ascx file. For example,&lt;br /&gt;
&amp;lt;%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WUC.ascx.cs"&lt;br /&gt;
Inherits="ParentWebApp.WUC" %&amp;gt;&lt;br /&gt;
&amp;lt;asp:Label ID="lblFooter" runat="server" Height="87px" Text="Label"&lt;br /&gt;
Width="214px"&amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;br /&gt;
4. The Label control above can be also created by using the WUC.ascx&lt;br /&gt;
design view. Just&lt;br /&gt;
drag the Label button from the toolbox onto the form.&lt;br /&gt;
5. In the code behind file WUC.ascx.cs, make the WUC class inherit&lt;br /&gt;
from System.Web.UI.UserControl. And&lt;br /&gt;
in the Page_Load, enter code for what the controls need to do. For example,&lt;br /&gt;
public partial class WebUserControlFooter : System.Web.UI.UserControl&lt;br /&gt;
{&lt;br /&gt;
protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;
{&lt;br /&gt;
lblFooter.Text = "This page was served at ";&lt;br /&gt;
lblFooter.Text += DateTime.Now.ToString();&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
6. To use this custom control on any aspx web page:&lt;br /&gt;
a) Register the custom control on those aspx web pages, eg.&lt;br /&gt;
&amp;lt;%@ Register TagPrefix="cr" TagName="WUC" Src="~/WUC.ascx" %&amp;gt;&lt;br /&gt;
b)  Add the custom control, eg.&lt;br /&gt;
&amp;lt;cr:WUC id=Footer1 runat="server" /&amp;gt;&lt;br /&gt;
Note that the TagPrefix name is the alias for the custom control to be&lt;br /&gt;
used in the aspx web page.&lt;br /&gt;
Strings&lt;br /&gt;
========&lt;br /&gt;
\r\n      - Carriage Return, then Newline - this is neeeded for&lt;br /&gt;
example in TextBox component.&lt;br /&gt;
How to Add Google Maps to your ASP.Net page&lt;br /&gt;
=============================================&lt;br /&gt;
1. In Visual Studio, go to the aspx page where you want to include the&lt;br /&gt;
Google Map.&lt;br /&gt;
For example, if the aspx page is called test.aspx, then in the&lt;br /&gt;
Solution Explorer there is at least 3 code files:&lt;br /&gt;
test.aspx&lt;br /&gt;
- test.aspx.cs&lt;br /&gt;
- test.aspx.designer.cs&lt;br /&gt;
For this example, choose the test.aspx. In the main editor panel, look&lt;br /&gt;
at the grey bar below the panel and ensure it is "Design" and not&lt;br /&gt;
"Source".&lt;br /&gt;
2. Add HTML components&lt;br /&gt;
Open the Toolbox. Either by View -&amp;gt; Toolbox or go to the right panel&lt;br /&gt;
and select the Toolbox tab.&lt;br /&gt;
Then in the Toolbox, go to the HTML section of components. Do not&lt;br /&gt;
remain at the Standard section of components.&lt;br /&gt;
Drag and drop the following onto the page:&lt;br /&gt;
- Input(Button)  - for activating / drawing the map&lt;br /&gt;
- Input(Hidden)  - for lattitude information&lt;br /&gt;
- Input(Hidden)  - for longitude information&lt;br /&gt;
- Input(Hidden)  - for other information to be printed on the map&lt;br /&gt;
- Div            - actual area where map is displayed.&lt;br /&gt;
Click on each one of the components, and name them in the "id" field&lt;br /&gt;
with these names:&lt;br /&gt;
butMap,&lt;br /&gt;
hidLatitude,&lt;br /&gt;
hidLongitude,&lt;br /&gt;
hidDetails,&lt;br /&gt;
map&lt;br /&gt;
3. Make HTML components into &lt;a href="http://asp.net/"&gt;ASP.NET&lt;/a&gt; components.&lt;br /&gt;
From the GUI editor page, click on the "Source" tab to edit the html&lt;br /&gt;
source code.&lt;br /&gt;
Go to the HTML section where the above 5 components are defined and&lt;br /&gt;
add the following for each 5 components: runat="server".&lt;br /&gt;
The final HTML code for the 5 components should look like:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Map Display&lt;br /&gt;
&amp;lt;input id="butMap" runat="server" type="button" value="Draw&lt;br /&gt;
Map" onclick="drawGmap()" /&amp;gt;&lt;br /&gt;
&amp;lt;input id="hidLatitude" runat="server" type="hidden" /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;input id="hidLongitude" runat="server" type="hidden" /&amp;gt;&lt;br /&gt;
&amp;lt;input id="hidShopDetails" runat="server"  type="hidden" /&amp;gt;&lt;br /&gt;
&amp;lt;div id="map" runat="server"  style="width: 400px; height:&lt;br /&gt;
400px" visible="true"&amp;gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
At this stage just make sure the attributes of id, type and runat are correct.&lt;br /&gt;
By adding the runat="server" to the HTML code, then compile the code&lt;br /&gt;
in Visual Studio, this would make the HTML elements recognizable by&lt;br /&gt;
ASP.Net.&lt;br /&gt;
To check this, go to the test.aspx.designer.cs file and check the&lt;br /&gt;
following lines exist after compilation with runat="server":&lt;br /&gt;
protected global::System.Web.UI.HtmlControls.HtmlInputButton butMap;&lt;br /&gt;
protected global::System.Web.UI.HtmlControls.HtmlInputHidden&lt;br /&gt;
hidLatitude;&lt;br /&gt;
protected global::System.Web.UI.HtmlControls.HtmlInputHidden&lt;br /&gt;
hidLongitude;&lt;br /&gt;
protected global::System.Web.UI.HtmlControls.HtmlInputHidden&lt;br /&gt;
hidShopDetails;&lt;br /&gt;
protected global::System.Web.UI.HtmlControls.HtmlGenericControl map;&lt;br /&gt;
4. Ensure that somewhere in the test.aspx.cs code file, the html input&lt;br /&gt;
fields on the front end are filled with values. For example:&lt;br /&gt;
hidDetails.Value = "some details";&lt;br /&gt;
hidLatitude.Value = "20.312";&lt;br /&gt;
hidLongitude.Value = "132.12";&lt;br /&gt;
&lt;br /&gt;
5. In between the header and the body section of the html code:&lt;br /&gt;
&amp;lt;script type="text/javascript"&lt;br /&gt;
src="&lt;a href="http://www.google.com/jsapi?key=ABQIAAAAXg-1e7LbaB0NNB4KY0h0-BQWFt-7OBZKMPMlsVYvuUdvLO58RBSi6mMmr-RK5Y90BBnpyvt7UFoIfA"&gt;http://www.google.com/jsapi?key=ABQIAAAAXg-1e7LbaB0NNB4KY0h0-BQWFt-7OBZKMPMlsVYvuUdvLO58RBSi6mMmr-RK5Y90BBnpyvt7UFoIfA&lt;/a&gt;"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type="text/javascript"&amp;gt; google.load("maps", "2.x"); &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;
function drawGmap() {&lt;br /&gt;
var dLat = document.getElementById("hidLatitude").value;&lt;br /&gt;
var dLong = document.getElementById("hidLongitude").value;&lt;br /&gt;
var sAddress = document.getElementById("hidDetails").value;&lt;br /&gt;
var map = new google.maps.Map2(document.getElementById("map"));&lt;br /&gt;
map.setUIToDefault();&lt;br /&gt;
var point = new GLatLng(dLat, dLong);&lt;br /&gt;
map.addOverlay(new GMarker(point));&lt;br /&gt;
map.setCenter(new google.maps.LatLng(dLat, dLong), 15);&lt;br /&gt;
var shtml = "100 &amp;lt;b&amp;gt;He&amp;lt;/b&amp;gt;llo";&lt;br /&gt;
map.openInfoWindowHtml(map.getCenter(), sAddress);&lt;br /&gt;
//map.openInfoWindow(map.getCenter(),&lt;br /&gt;
document.createTextNode(hidText.value));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;body  onunload="GUnload()"&amp;gt;&lt;br /&gt;
In addition, ensure that the button or some other component call the&lt;br /&gt;
function drawGmap(). For example, from the above HTML Button :&lt;br /&gt;
&amp;lt;input id="butMap" runat="server" type="button" value="Draw&lt;br /&gt;
Map" onclick="drawGmap()" /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ASP.Net inline Tags &amp;lt;%...%&amp;gt;&lt;br /&gt;
==============================&lt;br /&gt;
These are tags that may be used on the aspx / html page, that enable&lt;br /&gt;
interaction with server side functions. The tags and a brief&lt;br /&gt;
explanation is given below:&lt;br /&gt;
&amp;lt;% ... %&amp;gt;&lt;br /&gt;
Allows C# code to be run within the tags.&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;% string s = "test"; %&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%= ... %&amp;gt;&lt;br /&gt;
Extracts values from server side objects.&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;%= DateTime.Now.ToShortDateString() %&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%# .. %&amp;gt;&lt;br /&gt;
Mostly used for binding expressions like Eval or Bind&lt;br /&gt;
Example: usage in Gridview in the example below where the Eval is used&lt;br /&gt;
to extract the value in the DB under the "name" column or field, for&lt;br /&gt;
each row in the Gridview.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;asp:GridView ID="GridView1"&lt;br /&gt;
runat="server" AutoGenerateColumns="False"&lt;br /&gt;
DataSourceID="SqlDataSource1"&amp;gt;&lt;br /&gt;
&amp;lt;Columns&amp;gt;&lt;br /&gt;
&amp;lt;asp:TemplateField HeaderText="Name"&amp;gt;&lt;br /&gt;
&amp;lt;ItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;asp:LinkButton ID="lnkname" runat="server"&lt;br /&gt;
Text='&amp;lt;%#Eval("Name") %&amp;gt;'&lt;br /&gt;
PostBackUrl='&amp;lt;%#"~/Details.aspx?ID="+Eval("ID") %&amp;gt;'&amp;gt;&lt;br /&gt;
&amp;lt;/asp:LinkButton&amp;gt;&lt;br /&gt;
&amp;lt;/ItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;/asp:TemplateField&amp;gt;&lt;br /&gt;
&amp;lt;/Columns&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;%$ ... %&amp;gt;&lt;br /&gt;
This is also called ASP.Net Expression and is used to extract&lt;br /&gt;
AppSettings, ConnectionsStrings or Resources&lt;br /&gt;
Example: using as connection string in DB&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;asp:SqlDataSource ID="party" runat="server" ConnectionString="&amp;lt;%$&lt;br /&gt;
ConnectionStrings:myString %&amp;gt;" SelectCommand="SELECT * FROM [table]"&lt;br /&gt;
/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;%@ ... %&amp;gt;&lt;br /&gt;
Specifying ASP.Net directives at the top of the aspx page.&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs"&lt;br /&gt;
Inherits="_parent" Title="Test Page" %&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%-- ... --%&amp;gt;&lt;br /&gt;
Comments are embedded here. These comments can be seen on the aspx&lt;br /&gt;
page, but after compilation into html page, the client would not be&lt;br /&gt;
able to see these parts.&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;%-- Here are some comments --%&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ASP.Net calling Javascript client side&lt;br /&gt;
========================================&lt;br /&gt;
This section shows how to call a Javascript function defined on the&lt;br /&gt;
aspx page, from the C# code-behind aspx.cs code.&lt;br /&gt;
1. The javascript is defined in the aspx page between the head and&lt;br /&gt;
body tags, like:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;
function drawGmap() { ......}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
2. In the aspx.cs page, to call the javascript function drawGmap(...),&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
if (!Page.ClientScript.IsStartupScriptRegistered("alert"))   {&lt;br /&gt;
Page.ClientScript.RegisterStartupScript(this.GetType(), "alert",&lt;br /&gt;
"drawGmap();", true);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The name of the function is simply placed at the third position.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-7816054879940537067?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/I-sKUMQyTEdisjOWQvA6L5eUpaA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I-sKUMQyTEdisjOWQvA6L5eUpaA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/I-sKUMQyTEdisjOWQvA6L5eUpaA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I-sKUMQyTEdisjOWQvA6L5eUpaA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/ENQdvhkUSR4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/7816054879940537067/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=7816054879940537067" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/7816054879940537067?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/7816054879940537067?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/ENQdvhkUSR4/notes-aspnet.html" title="Notes ASP.Net" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/06/notes-aspnet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAGRng_eSp7ImA9WhdSGEs.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-5509668743067679878</id><published>2011-05-18T08:43:00.000-07:00</published><updated>2011-07-28T07:35:27.641-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-28T07:35:27.641-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="frozen PC" /><category scheme="http://www.blogger.com/atom/ns#" term="malware" /><category scheme="http://www.blogger.com/atom/ns#" term="msconfig" /><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="XP" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><title>How To Fix Your PC</title><content type="html">This article provides a few tips in the form of a checklist on what to do to fix a computer when it is not behaving right.&lt;br /&gt;
&lt;br /&gt;
- Check if there is firewall, antivirus and other security software.&lt;br /&gt;
- Run 'msconfig'&lt;br /&gt;
- Run web based virus scan, eg http://www.kaspersky.com/virusscanner or http://housecall.trendmicro.com&lt;br /&gt;
- Use the following tools:&lt;br /&gt;
&amp;nbsp; &amp;nbsp;EasyCleaner - various tools like registry cleaning, removing programs, etc.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;PC Wizard - full info on PC&lt;br /&gt;
&amp;nbsp; &amp;nbsp;Undelete Plus - recover deleted files&lt;br /&gt;
&amp;nbsp; &amp;nbsp;Hijack This&lt;br /&gt;
- Windows Vista repair&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- Start - type Performance Information and Tools - click Advanced Tools - Generate System Health Report&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Here are some links to other tips on fixing the PC&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Common PC Problems Solved: The Ultimate FAQ&lt;br /&gt;
http://www.pcworld.idg.com.au/article/print/165794/common_pc_problems_solved_ultimate_faq/&lt;br /&gt;
&lt;br /&gt;
Got XP Annoyances? Try These Four Smart Fixes for Windows Woes&lt;br /&gt;
http://www.pcworld.idg.com.au/article/199736/got_xp_annoyances_try_these_four_smart_fixes_windows_woes/&lt;br /&gt;
&lt;br /&gt;
How Do I Get Malware Off My PC Once and for All?&lt;br /&gt;
http://www.pcworld.idg.com.au/article/199721/how_do_get_malware_off_my_pc_once_all_/&lt;br /&gt;
&lt;br /&gt;
What Is the Best Way to Unstick My Frozen PC?&lt;br /&gt;
http://www.pcworld.idg.com.au/article/199798/what_best_way_unstick_my_frozen_pc_/&lt;br /&gt;
&lt;br /&gt;
Protect Against Software Installation Nightmares&lt;br /&gt;
http://www.pcworld.idg.com.au/article/199810/answer_line_protect_against_software_installation_nightmares/&lt;br /&gt;
&lt;br /&gt;
Make Windows start up faster&lt;br /&gt;
http://www.pcworld.idg.com.au/article/173412/make_windows_start_up_faster/?fp=2&amp;amp;fpid=2&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
Microsoft Standalone System Sweeper Beta&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;a href="http://connect.microsoft.com/systemsweeper"&gt;http://connect.microsoft.com/systemsweeper&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;a recovery tool that can help you start an infected PC and perform an offline scan to help identify and remove rootkits and other advanced malware. In addition, Microsoft Standalone System Sweeper Beta can be used if you cannot install or start an antivirus solution on your PC, or if the installed solution can’t detect or remove malware on your PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Tools to fix PC&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.computerworld.com/s/article/9218119/The_Bootable_Maintenance_Flash_Drive"&gt;The Bootable Maintenance Flash Drive&lt;/a&gt; ( &lt;a href="https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0ByoYU6I1v2UENjY0NDU2NDktZGQzMS00ZWM0LThiNzEtNzIwYmYxZjNkOTcy&amp;amp;hl=en_US"&gt;PDF&lt;/a&gt; ) - provides a small suite of tools very useful for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-5509668743067679878?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AJH0orUtLMb4c_aCcBuqE1Pstts/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AJH0orUtLMb4c_aCcBuqE1Pstts/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AJH0orUtLMb4c_aCcBuqE1Pstts/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AJH0orUtLMb4c_aCcBuqE1Pstts/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/w4yQ35JUnc8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/5509668743067679878/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=5509668743067679878" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/5509668743067679878?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/5509668743067679878?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/w4yQ35JUnc8/how-to-fix-your-pc.html" title="How To Fix Your PC" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/05/how-to-fix-your-pc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ADRH88eyp7ImA9WhdQE04.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-1282801124222114586</id><published>2011-05-08T08:54:00.000-07:00</published><updated>2011-08-14T07:22:55.173-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-14T07:22:55.173-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Wndows XP tips" /><category scheme="http://www.blogger.com/atom/ns#" term="environment path" /><category scheme="http://www.blogger.com/atom/ns#" term="change registry setting" /><category scheme="http://www.blogger.com/atom/ns#" term="encryption" /><category scheme="http://www.blogger.com/atom/ns#" term="Roaming profile" /><title>Notes Windows</title><content type="html">&lt;br /&gt;
NotesWindows &amp;nbsp;- Notes on Windows&lt;br /&gt;
=============&lt;br /&gt;
&lt;br /&gt;
This includes NotesWinXP which is now made obsolete.&lt;br /&gt;
The content here is related to any version of Windows and will be specifically denoted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contents&lt;br /&gt;
=========&lt;br /&gt;
Roaming Profile - Encryption&lt;br /&gt;
Useful Registry Keys&lt;br /&gt;
Stop accidentally moving files or folders&lt;br /&gt;
Windows Update does not work anymore&lt;br /&gt;
Application Location&lt;br /&gt;
MS Windows XP backup&lt;br /&gt;
Change Location of My Pictures, My Documents&lt;br /&gt;
Change Location of Libraries in Windows 7&lt;br /&gt;
Password Revealed on Windows&lt;br /&gt;
Known Folders can be Hidden - Windows 7&lt;br /&gt;
Boot Manager - Windows XP, Windows 7&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Roaming Profile - Encryption - WinXP&lt;br /&gt;
=============================&lt;br /&gt;
Problem: When roaming profile cannot be saved - the reason could be due to some files are being encrypted.&lt;br /&gt;
&lt;br /&gt;
Solution: Find and remove the encrypted file. Use the tool "cipher" provided by WinXP.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; cipher /S:directoryName&lt;br /&gt;
... to check encryption status of all subdirectories&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
Roaming decrypt&lt;br /&gt;
http://www.microsoft.com/technet/prodtechnol/winxppro/reskit/c18621675.mspx&lt;br /&gt;
&lt;br /&gt;
Search windows "roaming profile" decrypt&lt;br /&gt;
http://au.alpha.yahoo.com/search/web?p=windows+%22roaming+profile%22+decrypt&lt;br /&gt;
search http://au.alpha.yahoo.com/search/web?p=windows+%22roaming+profile%22+decrypt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Useful Registry Keys&lt;br /&gt;
================================&lt;br /&gt;
Append Path: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths&lt;br /&gt;
System Path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment&lt;br /&gt;
User path: &amp;nbsp; HKEY_CURRENT_USER\Environment&lt;br /&gt;
Reserved Drives Letters: HKEY_LOCAL_MACHINE\SYSTEM\MOUNTEDDevices&lt;br /&gt;
&lt;br /&gt;
Stop accidentally moving files or folders &amp;nbsp;- WinXP&lt;br /&gt;
===========================================&lt;br /&gt;
It is very easy to accidentally move folders in Windows Explorer, simply by careless movement of the mouse and accidentally releasing buttons. This problem is also very easy to occur with trackpads on laptops. There is a way of preventing this accidental motion by making Windows pop up a dialog box to ask for confirmation.&lt;br /&gt;
&lt;br /&gt;
"Do You Want To Move Or Copy Files From This Zone?"&lt;br /&gt;
&lt;br /&gt;
To enable this feature,&lt;br /&gt;
1. Click Start -&amp;gt; Control Panel -&amp;gt; Internet Options.&lt;br /&gt;
2. Click “Security” tab, mark the zone “Local intranet”, and click the “Sites” button.&lt;br /&gt;
3. Un-tick “Automatically detect intranet network”&lt;br /&gt;
4. Tick “Include all local (intranet) sites not listed in other zones”&lt;br /&gt;
&amp;nbsp; &amp;nbsp;Tick “Include all sites that bypass the proxy server”&lt;br /&gt;
&amp;nbsp; &amp;nbsp;Untick “Include all network paths (UNCs)” &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Windows Update does not work anymore &amp;nbsp;- WinXP&lt;br /&gt;
=====================================&lt;br /&gt;
For some reason, Windows files may corrupt such that the Windows Update will not work anymore. To solve this:&lt;br /&gt;
1. Open a Command Prompt Terminal: Start - Run, type: cmd.&lt;br /&gt;
2. To stop the current windows update service, in the Command Prompt, type:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; net stop wuauserv&lt;br /&gt;
3. Re-register the windows update dll for WinXP 32bit&lt;br /&gt;
&amp;nbsp; &amp;nbsp; regsvr32 %windir%\system32\wups2.dll&lt;br /&gt;
Re-register the windows update dll for WinXP 64bit&lt;br /&gt;
&amp;nbsp; &amp;nbsp; regsvr32 %windir%\syswow64\wups2.dll&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Application Location&lt;br /&gt;
=====================&lt;br /&gt;
WinXP:&lt;br /&gt;
Netscape Bookmarks (Netscape v 8.1)&lt;br /&gt;
D:\Program Files\Netscape\Netscape Browser\defaults\profile\bookmarks.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MS Windows XP backup&lt;br /&gt;
======================&lt;br /&gt;
Below describes the process to take when backing up Windows. Some folder directory sizes given here may give an indication of their relative or typical sizes, but they will obviously vary in different systems.&lt;br /&gt;
&lt;br /&gt;
- Login as each user and i) Empty Recycle Bin, ii) Clear all Cache, Cookies&lt;br /&gt;
- Login in as Administrator (so that can backup Registry and other System State)&lt;br /&gt;
- Goto Control Panel - Performance and Maintenance - "Free up space in your hard disk"&lt;br /&gt;
- c:\windows\system32 = 1GB&lt;br /&gt;
- c:\windows\ folders except system32 = 790MB&lt;br /&gt;
- c:\windows\system32\dllcache = 467MB&lt;br /&gt;
- c:\windows\$NTUninstall* = 245MB&lt;br /&gt;
- c:\windows\Driver Cache = 87MB&lt;br /&gt;
- c:\windows\fonts = 89MB&lt;br /&gt;
- c:\windows\help = 46MB&lt;br /&gt;
- c:\windows\ime = 86MB&lt;br /&gt;
- To backup Registry - go to the GUI windows Backup Utility and check the "System State"&lt;br /&gt;
- Do Normal and then Incremental backup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Change Location of My Documents&lt;br /&gt;
=================================&lt;br /&gt;
WinXP:&lt;br /&gt;
Change My Documents.&lt;br /&gt;
- Right click My Documents - Properties - change the Target Location&lt;br /&gt;
- by default My Documents is in C:\Documents and Settings\&lt;user&gt;\My Documents&lt;/user&gt;&lt;br /&gt;
&lt;br /&gt;
My Pictures, My Music.&lt;br /&gt;
- It appears that these folders are not changeable and are set under My Documents.&lt;br /&gt;
- When My Documents location is changed, then these folders should follow too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Change Location of Libraries in Windows 7&lt;br /&gt;
===========================================&lt;br /&gt;
Libraries in Windows 7 can be assigned to various locations. Libraries will source the physial location of target directories and present the contents as if they all belong to the library. To change the location of Libraries in Windows 7:&lt;br /&gt;
- open Explorer&lt;br /&gt;
- in the left hand pane, right click on the library icons&lt;br /&gt;
- select Properties&lt;br /&gt;
- a list of location is presented, which can then be modified&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Password Revealed on Windows&lt;br /&gt;
==============================&lt;br /&gt;
Windows 7:&lt;br /&gt;
- Passwords apparently can be revealed by System Information for Windows.&lt;br /&gt;
- the System Information (Start - All Programs - Accessories - System Tools - System Information) on Windows XP do not seem to reveal passwords.&lt;br /&gt;
- to remove the passwords in Windows 7, do:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Control Panel - User Accounts and Family Safety - Windows Credential Manager.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Known Folders can be Hidden - Windows 7&lt;br /&gt;
==========================================&lt;br /&gt;
Windows default folders like Music, Pictures, Videos, Searches are part of the operating system and is not easy to remove. They may be hidden in a number of different ways.&lt;br /&gt;
1. Move them to another location by:&lt;br /&gt;
- Right click and select properties of the Known Folder&lt;br /&gt;
- Go to Location tab&lt;br /&gt;
- use the button Move to specify new location.&lt;br /&gt;
2. Merge them into Documents folder.&lt;br /&gt;
- Select the Known Folder to move.&lt;br /&gt;
- For the target to move to, select Documents.&lt;br /&gt;
3. Remove Known Folders&lt;br /&gt;
- Go to Start button and type, GPEDIT.MSC&lt;br /&gt;
- Under User Configuration, click Administrative Templates, double click Windows Components, then Windows Explorer.&lt;br /&gt;
- In the Disable Known Folders setting, double click and select Enabled.&lt;br /&gt;
- Click Show and enter names of any folders to be disabled.&lt;br /&gt;
- Go back to main Windows Explorer and delete any of the Known Folders, and it will be permanenet.&lt;br /&gt;
&lt;br /&gt;
For a list of Known Folders, http://msdn.microsoft.com/en-us/library/bb882665.aspx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Boot Manager - Windows XP, Windows 7&lt;br /&gt;
======================================&lt;br /&gt;
Boot Loader for Windows XP: NTLDR&lt;br /&gt;
Sits on the Primary Partition of the Hard Disk&lt;br /&gt;
Configuration file: boot.ini&lt;br /&gt;
To edit, use Notepad&lt;br /&gt;
&lt;br /&gt;
Boot Loader for Windows 7 / Vista : Windows Boot Manager (BOOTMGR)&lt;br /&gt;
Sits on the Primary Partition of the Hard Disk&lt;br /&gt;
Configuration file: BCD (Boot Configuration Data)&lt;br /&gt;
To edit, use BCDEDIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-1282801124222114586?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0YNUTcgEpXh8koyEz01uPtH4pgQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0YNUTcgEpXh8koyEz01uPtH4pgQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0YNUTcgEpXh8koyEz01uPtH4pgQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0YNUTcgEpXh8koyEz01uPtH4pgQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/neriW6R2KKY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/1282801124222114586/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=1282801124222114586" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/1282801124222114586?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/1282801124222114586?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/neriW6R2KKY/notes-windows.html" title="Notes Windows" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/05/notes-windows.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YCQHg-fip7ImA9WhdQF0w.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-2964083340420334664</id><published>2011-04-06T05:13:00.000-07:00</published><updated>2011-08-18T16:46:01.656-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-18T16:46:01.656-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="RSA" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>Security RSA - links</title><content type="html">&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;OBSOLETE - see&amp;nbsp;&lt;a href="http://xtechnotes.blogspot.com/2011/08/news-security.html"&gt;http://xtechnotes.blogspot.com/2011/08/news-security.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This article consist of links to other sites or blogs about RSA news:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;a href="http://blogs.rsa.com/rivner/anatomy-of-an-attack/"&gt;Anatomy of an Attack&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 11px; line-height: 19px;"&gt;Written on&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 11px; line-height: 19px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 11px; line-height: 19px;"&gt;&lt;span class="date"&gt;April 1, 2011&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 11px; line-height: 19px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 11px; line-height: 19px;"&gt;by&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 11px; line-height: 19px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 11px; line-height: 19px;"&gt;&lt;span class="author"&gt;&lt;a href="http://blogs.rsa.com/author/rivner/" style="color: #0c4b92; text-decoration: none;"&gt;Uri Rivner&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;"&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;The first thing actors like those behind the APT do is seek publicly available information about specific employees – social media sites are always a favorite.&amp;nbsp; With that in hand they then send that user a Spear Phishing email. Often the email uses target-relevant content; for instance, if you’re in the finance department, it may talk about some advice on regulatory controls.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;The attacker in this case sent two different phishing emails over a two-day period. The two emails were sent to two small groups of employees; you wouldn’t consider these users particularly high profile or high value targets. The email subject line read “2011 Recruitment Plan.”............&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-2964083340420334664?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XMEjCd2mdcn-uJ8HvL8U676AK8Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XMEjCd2mdcn-uJ8HvL8U676AK8Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XMEjCd2mdcn-uJ8HvL8U676AK8Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XMEjCd2mdcn-uJ8HvL8U676AK8Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/cn3sIlxnJKE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/2964083340420334664/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=2964083340420334664" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/2964083340420334664?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/2964083340420334664?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/cn3sIlxnJKE/security-rsa-links.html" title="Security RSA - links" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/04/security-rsa-links.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cER3ozcSp7ImA9WhZSEUk.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-3656793327449809172</id><published>2011-03-26T07:16:00.000-07:00</published><updated>2011-03-26T07:16:46.489-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-26T07:16:46.489-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="virus" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Diagnostics" /><category scheme="http://www.blogger.com/atom/ns#" term="malware" /><category scheme="http://www.blogger.com/atom/ns#" term="kaspersky" /><category scheme="http://www.blogger.com/atom/ns#" term="avira" /><category scheme="http://www.blogger.com/atom/ns#" term="WinPatrol" /><category scheme="http://www.blogger.com/atom/ns#" term="antivirus" /><category scheme="http://www.blogger.com/atom/ns#" term="spyware" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Enterprise Defender" /><category scheme="http://www.blogger.com/atom/ns#" term="malwarebytes" /><title>Malware: Windows Enterprise Defender and Windows Diagnostics</title><content type="html">A recent PC malware virus I solved had the Windows Enterprise Defender and Windows Diagnostics.&lt;br /&gt;
&lt;br /&gt;
This is a well known malware (Google it!) where the PC suddenly pops up a dialog that looks like it is scanning your PC and finds many virus or spyware. In fact, the idea is to scare people into clicking on something, whether to buy or to let more malware into the computer. There are many search found on this from Google (see References below) but here is what worked for me.&lt;br /&gt;
&lt;br /&gt;
Disconnect from Internet - No LAN, No WAN.&lt;br /&gt;
&lt;br /&gt;
Any software mentioned below is actually downloaded on another PC, burned into DVD and then used on the infected PC. To be safe I even avoided hooking any USB key or USB portable drive to the infected PC. The main idea is that: nothing goes in or out of the infected PC while you are trying to cure it.&lt;br /&gt;
&lt;br /&gt;
Install WinPatrol 2011&lt;br /&gt;
&lt;br /&gt;
Install Malware Bytes 1.5.0, then run and scan. Remove anything suspicious it can find.&lt;br /&gt;
&lt;br /&gt;
Install free version of Avira Antivirus. Before run and scan, go to&lt;br /&gt;
http://www.avira.com/en/support-vdf-update-info and download the relevant updates for Avira Antivirus.&lt;br /&gt;
Then open Avira, go to Update menu and do Manual Update.&lt;br /&gt;
It will ask where the file is, you should point it to the update file which you manually downloaded from above.&lt;br /&gt;
After the Avira update, run several types of scan, such as scan all drives and Complete System Scan.&lt;br /&gt;
Remove anything which Avira found suspicious.&lt;br /&gt;
&lt;br /&gt;
If you are unable to scan in any way, Reboot Windows in safe mode and run the scans if possible.&lt;br /&gt;
&lt;br /&gt;
Install the following software just to double check that there are no more surprises:&lt;br /&gt;
- Kaspersky Virus Removal Tool 2010&lt;br /&gt;
- Prevx Free 3.0&lt;br /&gt;
- TDSS Killer (also from Kaspersky)&lt;br /&gt;
- IObit 360&lt;br /&gt;
- Spybot Search and Destroy.&lt;br /&gt;
&lt;br /&gt;
I found that I did not had to manually change any registry settings so far.&lt;br /&gt;
The following registry entries stated in 2-spyware site below are not on my computer:&lt;br /&gt;
HKEY_CLASSES_ROOT\CLSID\{3F2BBC05-40DF-11D2-9455-00104BC936FF}&lt;br /&gt;
HKEY_CLASSES_ROOT\WindowsEDefender.DocHostUIHandler&lt;br /&gt;
HKEY_USERS\.DEFAULT\Software\Microsoft\Internet Explorer\SearchScopes "URL" =&amp;gt; "http://search-gala.com/?&amp;amp;uid=7&amp;amp;q={searchTerms}"&lt;br /&gt;
HKEY_USERS\S-1-5-18\Software\Microsoft\Internet Explorer\SearchScopes "URL"&lt;br /&gt;
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform "[xSP_2:61a6083b6194a2314e3dd54cf9615e36_7]"&lt;br /&gt;
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform "876902803"&lt;br /&gt;
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run "Windows Enterprise Defender"&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
http://www.2-spyware.com/remove-windows-enterprise-defender.html&lt;br /&gt;
Seems to have very good instructions to remove Windows Enterprise Defender.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.bleepingcomputer.com/forums/topic385402.html&lt;br /&gt;
Many searches point to this site. I have read this but have not actually tried the methods suggested there. The first step involve TDSS Rootkit Removal Tool. The second step involved ComboFix. The reason I did not even start following this advice is that the ComboFix tool which they suggest to use, appears to be produced or hosted by the same website bleepingcomputer. Apart from a potential conflict of interest, something just made me be careful of using a software ComboFix, recommended by a blog that is from the same company as the blog.&lt;br /&gt;
&lt;br /&gt;
The TDSSKiller.exe from Kaspersky may be worth a look.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://answers.yahoo.com/question/index?qid=20110320101354AAZ6G8Y&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-3656793327449809172?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/H8RaMTGzj_JbjUDg2VbNyhgOP4A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/H8RaMTGzj_JbjUDg2VbNyhgOP4A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/H8RaMTGzj_JbjUDg2VbNyhgOP4A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/H8RaMTGzj_JbjUDg2VbNyhgOP4A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/_1OZFcL_r9c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/3656793327449809172/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=3656793327449809172" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/3656793327449809172?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/3656793327449809172?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/_1OZFcL_r9c/malware-windows-enterprise-defender-and.html" title="Malware: Windows Enterprise Defender and Windows Diagnostics" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/03/malware-windows-enterprise-defender-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkENRH87eSp7ImA9WhZSEU4.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-5800718909939728476</id><published>2011-03-26T04:24:00.001-07:00</published><updated>2011-03-26T04:24:55.101-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-26T04:24:55.101-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Regedit" /><category scheme="http://www.blogger.com/atom/ns#" term="uninstall" /><category scheme="http://www.blogger.com/atom/ns#" term="windows explorer" /><category scheme="http://www.blogger.com/atom/ns#" term="HKEY" /><title>How to Uninstall programs manually</title><content type="html">1. Go to Control Panel -&amp;gt; Add Remove Programs (or something called Software). When a list is presented, choose the program you wish to uninstall.&lt;br /&gt;
&lt;br /&gt;
2. Go to the Start -&amp;gt; All Programs -&amp;gt; Your Program -&amp;gt; Uninstall.&lt;br /&gt;
&lt;br /&gt;
Not all programs behave nicely and offer a clean uninstall. Before trying some third party software to uninstall, perhaps check the following to see if there is any traces of the program that you wished to uninstall.&lt;br /&gt;
&lt;br /&gt;
3. Go to Windows Explorer and find the location where you installed the program. By default most programs are installed in:&lt;br /&gt;
C:\Program Files&lt;br /&gt;
C:\Program Files (x86)&lt;br /&gt;
&lt;br /&gt;
4. Go to Windows Explorer and find&lt;br /&gt;
C:\Documents and Settings\&amp;lt;***&amp;gt;\Start Menu\Programs&lt;br /&gt;
C:\Documents and Settings\&amp;lt;***&amp;gt;\Start Menu\Programs\Startup&lt;br /&gt;
where &amp;lt;***&amp;gt; represent all the different user ids / login names on your computer.&lt;br /&gt;
&lt;br /&gt;
5. Open Regedit, typical locations are:&lt;br /&gt;
HKEY_LOCAL_MACHINE\SOFTWARE\YourApplication&lt;br /&gt;
HKEY_CURRENT_USER\SOFTWARE\YourApplication&lt;br /&gt;
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourApplication&lt;br /&gt;
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\YourApplication&lt;br /&gt;
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\YourApplication&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-5800718909939728476?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6aJL9BYbunCOIhhxaFyg9MmeYco/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6aJL9BYbunCOIhhxaFyg9MmeYco/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6aJL9BYbunCOIhhxaFyg9MmeYco/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6aJL9BYbunCOIhhxaFyg9MmeYco/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/E0xMP9FzNKY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/5800718909939728476/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=5800718909939728476" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/5800718909939728476?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/5800718909939728476?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/E0xMP9FzNKY/how-to-uninstall-programs-manually.html" title="How to Uninstall programs manually" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/03/how-to-uninstall-programs-manually.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMBRX4yfip7ImA9Wx9aEks.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-6799774954812398314</id><published>2011-03-04T11:54:00.000-08:00</published><updated>2011-03-04T11:54:14.096-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-04T11:54:14.096-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="syknet" /><category scheme="http://www.blogger.com/atom/ns#" term="Knuth" /><category scheme="http://www.blogger.com/atom/ns#" term="Macros" /><category scheme="http://www.blogger.com/atom/ns#" term="jokes" /><category scheme="http://www.blogger.com/atom/ns#" term="replace text" /><title>Funnies: Donald Knuth</title><content type="html">Check out the jokes featuring Donald Knuth&lt;br /&gt;
&lt;a href="http://jjinux.blogspot.com/2011/03/humor-donald-knuth-jokes.html"&gt;Humor: Donald Knuth Jokes&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here's some sample:&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;Skynet is actually an out of control TeX macro.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;Knuth can store all integers between 0 and 127 in 4 bits.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-6799774954812398314?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zKm6zdIyglMptsuD6VegtrFZWqU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zKm6zdIyglMptsuD6VegtrFZWqU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zKm6zdIyglMptsuD6VegtrFZWqU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zKm6zdIyglMptsuD6VegtrFZWqU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/9dTqRbL6AEw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/6799774954812398314/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=6799774954812398314" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/6799774954812398314?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/6799774954812398314?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/9dTqRbL6AEw/funnies-donald-knuth.html" title="Funnies: Donald Knuth" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/03/funnies-donald-knuth.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EESX4zcCp7ImA9WhdSF0o.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-3290040040125268640</id><published>2011-02-07T04:28:00.000-08:00</published><updated>2011-07-27T08:13:28.088-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-27T08:13:28.088-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="online shopping" /><category scheme="http://www.blogger.com/atom/ns#" term="online tv" /><category scheme="http://www.blogger.com/atom/ns#" term="website links" /><title>101 Websites</title><content type="html">This is a subset of the website links of the PC Authority article. It is not the full 101 websites.&lt;br /&gt;
In addition, links from sources other than PC Authority have now been added.&lt;br /&gt;
&lt;br /&gt;
PC help&lt;br /&gt;
www.computerhope.com&lt;br /&gt;
www.annoyances.org&lt;br /&gt;
www.filetxt.com&lt;br /&gt;
www.pchell.com/hardware/beepcodes.html&lt;br /&gt;
www.dll-downloads.com&lt;br /&gt;
www.gizmo.com.au&lt;br /&gt;
&lt;br /&gt;
PC Building&lt;br /&gt;
www.staticice.com&lt;br /&gt;
www.accc.gov.au&lt;br /&gt;
ninite.com&lt;br /&gt;
&lt;br /&gt;
Break Time&lt;br /&gt;
www.eye-strain.com&lt;br /&gt;
www.mightygodking.com&lt;br /&gt;
www.fark.com&lt;br /&gt;
www.armorgames.com&lt;br /&gt;
www.newgrounds.com&lt;br /&gt;
www.gymgym.com&lt;br /&gt;
&lt;br /&gt;
Online shopping&lt;br /&gt;
www.myus.com/australia&lt;br /&gt;
www.typobay.com&lt;br /&gt;
www.xe.net/ucc&lt;br /&gt;
www.fos.org.au&lt;br /&gt;
www.scamwatch.com.au&lt;br /&gt;
www.greysonline.com&lt;br /&gt;
&lt;a href="http://www.catchoftheday.com.au/"&gt;www.catchoftheday.com.au&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://offyourtrolley.com.au/"&gt;offyourtrolley.com.au&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://supermarketdeals.com.au/"&gt;supermarketdeals.com.au&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Finance / Money&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://www.educationtaxrefund.com.au/"&gt;www.educationtaxrefund.com.au&lt;/a&gt;&amp;nbsp; &amp;nbsp;claim back education cost&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Social Media&lt;br /&gt;
deleteyouraccount.com&lt;br /&gt;
&lt;br /&gt;
Entertainment&lt;br /&gt;
allmusic.com&lt;br /&gt;
imdb.com&lt;br /&gt;
icetv.com.au&lt;br /&gt;
avsforum.com&lt;br /&gt;
yourmovies.com.au&lt;br /&gt;
mycast.orb.com - lets you stream movie, photos, music across the web from home PC to other browser or smartphone.&lt;br /&gt;
thegreenbutton.com - help site&lt;br /&gt;
xpmediacentre.com.au/community - help site&lt;br /&gt;
abc.net.au/iview &amp;nbsp; - free ABC&lt;br /&gt;
au.tv.yahoo.com/plus7 - free Seven&lt;br /&gt;
fixplay.ninemsn.com.au - free Nine&lt;br /&gt;
player.sbs.com.au/programs - free SBS&lt;br /&gt;
ten.com.au/watchtv.htm - free TEN&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-3290040040125268640?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AKOloQT9fjpAUTg0o9ITQssWV64/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AKOloQT9fjpAUTg0o9ITQssWV64/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AKOloQT9fjpAUTg0o9ITQssWV64/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AKOloQT9fjpAUTg0o9ITQssWV64/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/6QtZNi8nLCA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/3290040040125268640/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=3290040040125268640" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/3290040040125268640?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/3290040040125268640?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/6QtZNi8nLCA/101-websites.html" title="101 Websites" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/02/101-websites.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4FQHc5eSp7ImA9Wx9XF0Q.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-7001169327847302810</id><published>2011-01-11T17:48:00.000-08:00</published><updated>2011-01-11T17:48:31.921-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-11T17:48:31.921-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="entrypoint" /><category scheme="http://www.blogger.com/atom/ns#" term="intptr" /><category scheme="http://www.blogger.com/atom/ns#" term="delegates" /><category scheme="http://www.blogger.com/atom/ns#" term="callback" /><category scheme="http://www.blogger.com/atom/ns#" term="pointers" /><category scheme="http://www.blogger.com/atom/ns#" term="unmanaged code" /><category scheme="http://www.blogger.com/atom/ns#" term="c#" /><category scheme="http://www.blogger.com/atom/ns#" term="Fortran" /><category scheme="http://www.blogger.com/atom/ns#" term="dllimport" /><title>Callback to C# from Unmanaged Fortran - PASSING ARRAYS</title><content type="html">&lt;b&gt;Thanks to reader kensun87 for requesting this feature.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This article builds on another article which should be read first:&lt;br /&gt;
Callback to C# from Unmanaged Fortran&lt;br /&gt;
http://xtechnotes.blogspot.com/2008/07/callback-to-c-from-unmanaged-fortran.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The original article on callback referenced above passes a single value (scalar) between callbacks. This example passes an ARRAY of integers. This is much trickier because arrays need to be handled using IntPtr when passing between callbacks.&lt;br /&gt;
&lt;br /&gt;
The Fortran code and C# code is listed below first, then some explanations. Please note that the fundamental explanations on callback will not be here, instead please see the previous article referenced above.&lt;br /&gt;
&lt;br /&gt;
------- &amp;nbsp;Fortran code &amp;nbsp;------&lt;br /&gt;
&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;module f90Callback&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;contains&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;! used by CScallbackDriver::Program.cs &amp;nbsp; &amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;subroutine func1(iArr, progressCllBak)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;!DEC$ ATTRIBUTES DLLEXPORT ::func1&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;!DEC$ ATTRIBUTES REFERENCE :: iArr, progressCllBak&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;implicit none&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;external progressCllBak&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;integer :: iCB&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;integer, INTENT(OUT) :: iArr(2)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; ! Body of f90Callback&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print *, "Hello from Fortran func1(iArr, progressCllBak)" &amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;iCB = 3&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;iArr(1) = 5&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;iArr(2) = 7&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;call progressCllBak(iArr, 2)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print *, "Final Fortran arrays are ", iArr&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;end subroutine func1&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;end module f90Callback&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------- &amp;nbsp;C# code &amp;nbsp;------&lt;br /&gt;
&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;using System;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;using System.Collections.Generic;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;using System.Text;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;using System.Runtime.InteropServices;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;namespace CScallbackDriver&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;{&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;unsafe class Program&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 0. Define a counter for the Progress callback to update&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public int localCounter;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 1. Define delegate type&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[UnmanagedFunctionPointer(CallingConvention.Cdecl)]&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public delegate void dgateIntPtr( IntPtr numYears, ref int iSize);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 2. Create a delegate variable&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public dgateIntPtr dg_progCBPtr;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Program() {&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 3. Instantiate delegate, typically in a Constructor of the class&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dg_progCBPtr = new dgateIntPtr(onUpdateProgressPtr);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 4. Define the c# callback function&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/// &lt;/code&gt;&lt;br /&gt;
&lt;summary&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/// Callback function where an array is passed from Fortran&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/// &lt;/code&gt;&lt;/summary&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/// &lt;param name="progCount" /&gt;pointer to the unmanaged array&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/// &lt;param name="iSize" /&gt;size of the array represented by progCount&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void onUpdateProgressPtr( IntPtr progCount, ref int iSize)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//Unsafe code&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;unsafe&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Console.WriteLine("In C# callback function");&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;// reading in array from unmanaged code&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int[] managedArr2 = new int[2];&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Marshal.Copy(progCount, managedArr2, 0, iSize);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;// writing out array to unmanaged code&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;managedArr2[1] = 99;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Marshal.Copy(managedArr2, 0, progCount, iSize);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Console.WriteLine("Going out of C# callback function");&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;static void Main(string[] args)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Program myProg = new Program(); &amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;myProg.localCounter = 0;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int[] iArrB = new int[2];&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//6. Call normal Fortran function from DLL, and passing the callback delegate&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;func1Ptr(ref iArrB[0], myProg.dg_progCBPtr);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Console.ReadKey(); &amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 5. Define the dll interface&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Pointer&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[DllImport("f90Callback", EntryPoint = "F90CALLBACK_mp_FUNC1", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public static extern void func1Ptr([In, Out] ref int iArr, [MarshalAs(UnmanagedType.FunctionPtr)] &amp;nbsp;dgateIntPtr blah);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;}&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A few things to note:&lt;br /&gt;
1. in the Main method, you can ignore iArrB as it does not have implications in the callback.&lt;br /&gt;
2. In the Fortran code, when the call to the C# callback is made, note it is important to pass the correct size of the array, in this example 2:&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;call progressCllBak(iArr, 2)&lt;br /&gt;
3. In the Fortran code, the iArr is initialised with values {5,7}&lt;br /&gt;
4. In C# code, in step 1, see exactly how the arguments of the delegate dgateIntPtr are defined.&lt;br /&gt;
5. In C# code, in step 4, this is where the actual callback function is defined.&lt;br /&gt;
- the name of the callback function is onUpdateProgressPtr with arguments: ( IntPtr progCount, ref int iSize)&lt;br /&gt;
- the array called managedArr2 is defined with size iSize.&lt;br /&gt;
- Marshal.Copy is used to copy the unmanaged array progCount, into C# array managedArr2.&lt;br /&gt;
- the second element of the array is changed to 99.&lt;br /&gt;
- Marshal.Copy is used again but to copy the opposite way from managed array manageArr2 to unmanaged array progCount.&lt;br /&gt;
6. The call back returns to the Fortran function which then prints out the array where second element has new value of 99.&lt;br /&gt;
7. When the Fortran function finishes, it returns control back to C# main method.&lt;br /&gt;
8. All other steps in this example are similar to the previous callback example where only a scalar integer is passed.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-7001169327847302810?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aZEnlJ-iCrC1dsEu74oCgHcR8QU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aZEnlJ-iCrC1dsEu74oCgHcR8QU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aZEnlJ-iCrC1dsEu74oCgHcR8QU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aZEnlJ-iCrC1dsEu74oCgHcR8QU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/TNkSPafQIWw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/7001169327847302810/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=7001169327847302810" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/7001169327847302810?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/7001169327847302810?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/TNkSPafQIWw/callback-to-c-from-unmanaged-fortran.html" title="Callback to C# from Unmanaged Fortran - PASSING ARRAYS" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2011/01/callback-to-c-from-unmanaged-fortran.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EHRHY5eip7ImA9WhdWEk4.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-7823558525171616927</id><published>2010-12-19T02:21:00.000-08:00</published><updated>2011-09-05T07:07:15.822-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-05T07:07:15.822-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ePad" /><category scheme="http://www.blogger.com/atom/ns#" term="firmware" /><category scheme="http://www.blogger.com/atom/ns#" term="Gingerbread" /><category scheme="http://www.blogger.com/atom/ns#" term="Froyo" /><category scheme="http://www.blogger.com/atom/ns#" term="kernel" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Zenithink" /><title>Notes Zenithink ZT-180 ePad Android</title><content type="html">&lt;b&gt;Notes Zenithink EPad Android&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
These notes are about the Zenithink ZT-180 256MB (version 1). However, users of other models may find some similarities and hence useful notes here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ports on Zenithink and their functions&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp; Top side&lt;/i&gt;&lt;br /&gt;
T-F - slot for memory card, also known as MicroSD&lt;br /&gt;
Power On/Off - button for switching on / off&lt;br /&gt;
USB to RJ45 - microUSB connector to a LAN connector (supplied with Zenithink)&lt;br /&gt;
Software Menu - for selecting different software&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp; Bottom side&lt;/i&gt;&lt;br /&gt;
Speakers&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp; Right side&lt;/i&gt;&lt;br /&gt;
DC - to connect to power suppl for charging&lt;br /&gt;
OTG - USB On the Go - a specification for USB allowing the device to be a slave USB.&lt;br /&gt;
USB - to connect USB devices&lt;br /&gt;
Headphone -&lt;br /&gt;
Reset -&lt;br /&gt;
Mic -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Change Settings&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Settings -&amp;gt; Sound and Display -&amp;gt; Display Settings -&amp;gt; Screen Timeout&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Checking Information of ePad&lt;br /&gt;
- Version: &amp;nbsp;Settings app -&amp;gt; About MID -&amp;gt; Firmware, Kernel, Build, etc&lt;br /&gt;
- MAC Address:&amp;nbsp;Settings app -&amp;gt; About MID -&amp;gt; Status -&amp;gt; Wi-Fi Mac address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Some interesting APPS for the Android&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;Applications&lt;/i&gt;&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Adobe Reader&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Amazon Kindle&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Amazon MP3&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Bible Reader KJV&lt;/div&gt;Bible Reader Olive Tree&lt;br /&gt;
Dolphin Browser&lt;br /&gt;
Ebay&lt;br /&gt;
FT Mobile&lt;br /&gt;
Google Books&lt;br /&gt;
Google Maps&lt;br /&gt;
Google Market&lt;br /&gt;
Google SkyMap&lt;br /&gt;
Nagivation&lt;br /&gt;
Notepad&lt;br /&gt;
Office Suite&lt;br /&gt;
PDF Viewer&lt;br /&gt;
Places&lt;br /&gt;
Twitter&lt;br /&gt;
YouTube&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Utilities&lt;/i&gt;&lt;br /&gt;
Advanced Task Killer Free&lt;br /&gt;
DevTools&lt;br /&gt;
Latitude&lt;br /&gt;
ROM Gripper&lt;br /&gt;
Sound Recorder&lt;br /&gt;
Spare Parts&lt;br /&gt;
Superuser&lt;br /&gt;
Wifi Advanced Configuration Editor&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Educational&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;Algebra Tutor&lt;/div&gt;&lt;div&gt;Arity&lt;/div&gt;&lt;div&gt;Coloring Finding Nemo&lt;/div&gt;&lt;div&gt;Coloring Disney Princess&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;Dora Memory Game&lt;/div&gt;&lt;div&gt;Dora Explorer Puzzle&amp;nbsp;&lt;/div&gt;&lt;div&gt;Hello Kitty Puzzle&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Math Workout&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Princess Memory Game&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;i&gt;Fun and Games&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;div&gt;Angry Birds&lt;/div&gt;&lt;div&gt;Ataroid Lite&lt;/div&gt;&lt;div&gt;Checkers Free&lt;/div&gt;&lt;div&gt;Chess&lt;/div&gt;&lt;div&gt;Chuck Norris&lt;/div&gt;&lt;div&gt;Hangman Classic&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Mole Mole Mole&lt;/div&gt;&lt;div&gt;Piano&lt;/div&gt;&lt;div&gt;Pinball&lt;/div&gt;&lt;div&gt;Reversi&lt;/div&gt;&lt;div&gt;Robo Defense&lt;/div&gt;&lt;div&gt;Smart Tac Toe&lt;/div&gt;&lt;div&gt;SpiderMan&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;a href="http://www.makeuseof.com/pages/best-android-apps"&gt;The 100 Best Android Apps&lt;/a&gt;&amp;nbsp; &amp;nbsp; - &amp;nbsp;(&amp;nbsp;&lt;a href="https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0ByoYU6I1v2UEMDQ0OTkwOTAtZTRkNC00YWUxLWI4NTAtYTY3Yzc3MzY0Nzhl&amp;amp;hl=en_US"&gt;PDF&lt;/a&gt;&amp;nbsp;)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;How to Flash Zenithink ZT-180 or install the latest firmware&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
There are many ways to flash or upgrade Android on the Zenithink. There are many sites with a few good ones on how to do this. But I decide to write these notes because none of the sites have complete and detailed instructions. There always seem to be a step missing. So these notes will be detailed but for a very specific case only.&lt;br /&gt;
&lt;br /&gt;
For Zenithink users on Adroid 2.1 who wants to upgrade to Android 2.2.&lt;br /&gt;
To be speficic, these notes apply for Android 2.1 10(1030) to Android 2.2 11(0326)&lt;br /&gt;
This upgrade path MUST use USB install method (using 32bit Windows PC).&lt;br /&gt;
The SDcard install method CANNOT be used at this stage yet.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Part A: Installing Android USB drivers&lt;/b&gt;&lt;br /&gt;
1. This step is necessary so that the Zenithink can be connected via USB to a 32 bit PC to use the BurnTool.&lt;br /&gt;
2. Download the BurnTool package which contains the USB driver from.&lt;br /&gt;
http://www.mediafire.com/file/aa6i53txsocplvm&lt;br /&gt;
The link to BurnTool 7.41 can be found from&lt;br /&gt;
&lt;a href="http://www.slatedroid.com/wiki/index.php?title=Wiki:ZT-180_FAQ#Click_Here_to_view_all_available_ROMs_for_the_ZT-180"&gt;http://www.slatedroid.com/wiki/index.php?title=Wiki:ZT-180_FAQ#Click_Here_to_view_all_available_ROMs_for_the_ZT-180&lt;/a&gt;&lt;br /&gt;
The BurnTool 7.41 is for ROM 1104 or later. It is for 32 bit system.&lt;br /&gt;
3. Unpack the BurnTool RAR file which contain the following into a folder called BurnTool7.41:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;android_usb_windows.zip&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp;secbulk.rar&lt;/div&gt;&lt;div&gt;&amp;nbsp;burn.ini&lt;/div&gt;&lt;br /&gt;
&amp;nbsp;burntool.exe&lt;br /&gt;
&amp;nbsp;Readme.txt&lt;br /&gt;
&amp;nbsp;ZT_Bx.boot&lt;br /&gt;
&amp;nbsp;ZT_Bx.spl&lt;br /&gt;
&lt;br /&gt;
4. Make a new folder anywhere called adroid_usb.&lt;br /&gt;
- Unpack the contents of&amp;nbsp;BurnTool7.41/android_usb_windows.zip into&amp;nbsp;adroid_usb folder.&lt;br /&gt;
- Unpack the contents of&amp;nbsp;BurnTool7.41/secbulk.rar&amp;nbsp;into&amp;nbsp;adroid_usb folder.&lt;br /&gt;
5.&amp;nbsp;connect USB cable to PC, the other end is a free miniUSB.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- shutdown ZT-180&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- connect mini usb end to otg on ZT-180&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- put power cord in (tablet still turned off)&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- hold down menu button and press power and hold both for 10 seconds and let go.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- the PC should find hardware.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;6. If Zenithink is connected to PC for the first time, when PC asked to install drivers, choose the folder you created above called&amp;nbsp;adroid_usb. Important, the system will automatically install TWO sets of drivers.&lt;/div&gt;&lt;div&gt;The first set of USB drives is for the USB SecBoard Tools, the second set is for the Android USB.&lt;/div&gt;&lt;div&gt;The&amp;nbsp;&amp;nbsp;adroid_usb folder should contain these files for the USB driver to install properly:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp;androidusb.sys&lt;/div&gt;&lt;div&gt;&amp;nbsp;android_usb.inf&lt;/div&gt;&lt;div&gt;&amp;nbsp;LICENSE-2.0.txt&lt;/div&gt;&lt;div&gt;&amp;nbsp;secbulk.inf&lt;/div&gt;&lt;div&gt;&amp;nbsp;secbulk.sys&lt;/div&gt;&lt;div&gt;&amp;nbsp;WdfCoInstaller01005.dll&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Part B: Configuring BurnTool 7.41 and Flashing with 110326ROM&lt;/b&gt;&lt;br /&gt;
This technique will be a clean install meaning it will destroy everything in the old Android 2.1 system and replace with the Android 2.2 110326.&lt;br /&gt;
0.&amp;nbsp;Download Android 2.2 package build 110326, meaning 2011, March 26&amp;nbsp;from&lt;br /&gt;
http://www.zenithink.com/UploadFile/epad_256M_nand_old_android_2.2_0326.rar&lt;br /&gt;
Alternatively,&amp;nbsp;1. &lt;a href="http://www.zenithink.com/Enews_92.html"&gt;http://www.zenithink.com/Enews_92.html&lt;/a&gt;&amp;nbsp;click on the link:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;"&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;a href="http://www.zenithink.com/Eshownews_150.html" style="color: black; font-family: Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;10”(256MB+2GB) android2.2 edition NO.20110324&lt;/a&gt;&lt;/span&gt;"&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;The file should be:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;epad_256M_nand_old_android_2.2_0326.rar&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unpack this file into folder&amp;nbsp;epad_256M_nand_old_android_2.2_0326&lt;br /&gt;
&lt;br /&gt;
The folder should contain:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;boot.logo&lt;br /&gt;
&amp;nbsp;epad_256M_nand_old_android_2.2_0326.txt&lt;br /&gt;
&amp;nbsp;system.pack.img&lt;br /&gt;
&amp;nbsp;userdata.pack.img&lt;br /&gt;
&amp;nbsp;zImage&lt;br /&gt;
&amp;nbsp;zImage_1024x576&lt;br /&gt;
&amp;nbsp;zImage_1024x600&lt;br /&gt;
&amp;nbsp;ZT_Bx.spl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. After the USB drivers are installed, run BurtTool.exe from the&amp;nbsp;BurnTool7.41 folder.&lt;br /&gt;
2 On the BurnTool display, the Status square next to Device 10 should become green when the Zenithink USB connection is recognized. If not connected yet, then switch off Zenithink, connect the USB to miniUSB (OTG port). Hold the Menu button and press Power and hold for 10 seconds. The Device 10 square in BurnTool should turn green.&lt;br /&gt;
3. Click on the Settings menu item. Enter the password as "zenithink"&lt;br /&gt;
4. Setup the following files in the settings dialog:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- uboot-spl = &amp;nbsp;epad_256M_nand_old_android_2.2_0326\ZT_Bx.spl&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- uboot-img =&amp;nbsp;BurnTool7.41\ZT_Bx.boot&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- linux-kernel =&amp;nbsp;epad_256M_nand_old_android_2.2_0326\zImage&amp;nbsp;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- linux-sys =&amp;nbsp;epad_256M_nand_old_android_2.2_0326\system.pack.img&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- linux-udat =&amp;nbsp;epad_256M_nand_old_android_2.2_0326\userdata.pack.img&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- in the Memory options, click scrub&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- click Save&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;5. Check that the Zenithink is connected to the Power cable and the BurnTool device10 status is green.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;6. Press Start to Flash.&amp;nbsp;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;7. When flashing is completed, remove the mini USB cable from the Zenithink. Press the Menu button.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;8. Three setup options may be presented. Choose the option on top first then, the others.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;9. Switch of the Zenithink after setup is complete. Then Restart.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From another site:&lt;br /&gt;
&lt;br /&gt;
Shutdown the Pad.&lt;br /&gt;
Then Press The Button on the Right site in front of the pad (there is only one?) and the Power Button at the Same Time.&lt;br /&gt;
Then the device will be flashable and the light will be blue i think.&lt;br /&gt;
Then you Put the USB-Cable in, install the driver which is also in the package.&lt;br /&gt;
Now you can open burntool.&lt;br /&gt;
Device10 should be green.&lt;br /&gt;
Now jo goto Settings, and set uboot, kernel,sys-dat, udat&lt;br /&gt;
uboot: u-boot.img&lt;br /&gt;
linux-kernel:zImage_cui&lt;br /&gt;
linux-sys:system.img&lt;br /&gt;
linux-udat:userdata.img&lt;br /&gt;
&lt;br /&gt;
Press the FIRST button from the left site to confirm the settings&lt;br /&gt;
Now press Start and the device should be starting to flash....&lt;br /&gt;
However sometimes the board hangs after flashing and will not start directly dont worry. If everything doesnt help, do a reset.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Links to other Android related stuff&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;What are the first steps in developing a custom firmware?&lt;a href="http://www.slatedroid.com/apad-firmware-development/7091-what-first-steps-developing-custom-firmware.html" mce_href="http://www.slatedroid.com/apad-firmware-development/7091-what-first-steps-developing-custom-firmware.html"&gt;http://www.slatedroid.com/apad-firmware-development/7091-what-first-steps-developing-custom-firmware.html&lt;/a&gt;[How To] Unpack and Repack for Custom Firmwares for Rockchip RK2808/RK2808ahttp://www.androidtablets.net/forum/android-tablet-hacking/439-how-unpack-repack-custom-firmwares-rockchip-rk2808-rk2808a.html[How To] Unpack and Repack for Custom Firmwares for Rockchip RK2808/RK2808a&lt;a href="http://www.androidtablets.net/forum/android-tablet-hacking/439-how-unpack-repack-custom-firmwares-rockchip-rk2808-rk2808a.html" mce_href="http://www.androidtablets.net/forum/android-tablet-hacking/439-how-unpack-repack-custom-firmwares-rockchip-rk2808-rk2808a.html"&gt;http://www.androidtablets.net/forum/android-tablet-hacking/439-how-unpack-repack-custom-firmwares-rockchip-rk2808-rk2808a.html&lt;/a&gt;How to Flash Apad IRobot Android Tablet,How to Use Apad Firmware?&lt;a href="http://www.thefreelibrary.com/How+to+Flash+Apad+IRobot+Android+Tablet,How+to+Use+Apad+Firmware%3F-a01074128370" mce_href="http://www.thefreelibrary.com/How+to+Flash+Apad+IRobot+Android+Tablet,How+to+Use+Apad+Firmware%3F-a01074128370"&gt;http://www.thefreelibrary.com/How+to+Flash+Apad+IRobot+Android+Tablet,How+to+Use+Apad+Firmware%3F-a01074128370&lt;/a&gt;Read this First, Rooting, YouTube, Firmware&lt;a href="http://www.slatedroid.com/orphan-m70003/6979-read-first-firmware-youtube-market-touchscreen-etc.html" mce_href="http://www.slatedroid.com/orphan-m70003/6979-read-first-firmware-youtube-market-touchscreen-etc.html"&gt;http://www.slatedroid.com/orphan-m70003/6979-read-first-firmware-youtube-market-touchscreen-etc.html&lt;/a&gt;Apad buying sites:&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.wiipad.us/" mce_href="http://www.wiipad.us/"&gt;http://www.wiipad.us/&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.lunarsources.com/computers/50-7-irobot-google-android-15-wifi-apad-tablet.html" mce_href="http://www.lunarsources.com/computers/50-7-irobot-google-android-15-wifi-apad-tablet.html"&gt;http://www.lunarsources.com/computers/50-7-irobot-google-android-15-wifi-apad-tablet.html&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://androidcommunity.com/forums/archive/index.php/t-36093.html" mce_href="http://androidcommunity.com/forums/archive/index.php/t-36093.html"&gt;http://androidcommunity.com/forums/archive/index.php/t-36093.html&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.shenit.com/computer-laptops/china-android-tablet-mid.html" mce_href="http://www.shenit.com/computer-laptops/china-android-tablet-mid.html"&gt;http://www.shenit.com/computer-laptops/china-android-tablet-mid.html&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;How to Update apad/moonse/irobot firmware&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://apad-scene.blogspot.com/2010/06/how-to-update-apadmoonseirobot-firmware.html" mce_href="http://apad-scene.blogspot.com/2010/06/how-to-update-apadmoonseirobot-firmware.html"&gt;http://apad-scene.blogspot.com/2010/06/how-to-update-apadmoonseirobot-firmware.html&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Various ROMs and instructions&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://static.fiendish.net/xaueious/" mce_href="http://static.fiendish.net/xaueious/"&gt;http://static.fiendish.net/xaueious/&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;How to side load apps if market wont work&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.androidtablets.net/forum/android-tablet-usage-apps/431-how-side-load-apps-if-market-wont-work.html" mce_href="http://www.androidtablets.net/forum/android-tablet-usage-apps/431-how-side-load-apps-if-market-wont-work.html"&gt;http://www.androidtablets.net/forum/android-tablet-usage-apps/431-how-side-load-apps-if-market-wont-work.html&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;about the Flytouch X220 Infotm&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://forum.xda-developers.com/showthread.php?t=831178" mce_href="http://forum.xda-developers.com/showthread.php?t=831178"&gt;http://forum.xda-developers.com/showthread.php?t=831178&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Zenithink ZT-180&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://androidforums.com/tablets-mids/132917-zenithink-zt-180-1ghz-10-tablet-17.html" mce_href="http://androidforums.com/tablets-mids/132917-zenithink-zt-180-1ghz-10-tablet-17.html"&gt;http://androidforums.com/tablets-mids/132917-zenithink-zt-180-1ghz-10-tablet-17.html&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.chinadigitalcomm.com/zt-180-a105/zenithink-epad-zt180-m16-android-and-wince-upgrade-guide-t1474.html" mce_href="http://www.chinadigitalcomm.com/zt-180-a105/zenithink-epad-zt180-m16-android-and-wince-upgrade-guide-t1474.html"&gt;http://www.chinadigitalcomm.com/zt-180-a105/zenithink-epad-zt180-m16-android-and-wince-upgrade-guide-t1474.html&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.slatedroid.com/wiki/index.php?title=Wiki:ZT-180_FAQ" mce_href="http://www.slatedroid.com/wiki/index.php?title=Wiki:ZT-180_FAQ"&gt;http://www.slatedroid.com/wiki/index.php?title=Wiki:ZT-180_FAQ&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;update to Android 2.2 on zenithink Apad&lt;br /&gt;
&lt;a href="http://www.google.com.au/search?sourceid=chrome&amp;amp;ie=UTF-8&amp;amp;q=zenithink+us" mce_href="http://www.google.com.au/search?sourceid=chrome&amp;amp;ie=UTF-8&amp;amp;q=zenithink+us"&gt;http://www.google.com.au/search?sourceid=chrome&amp;amp;ie=UTF-8&amp;amp;q=zenithink+us&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://androidforums.com/zenithink-tablets/132917-zenithink-zt-180-1ghz-10-tablet-21.html" mce_href="http://androidforums.com/zenithink-tablets/132917-zenithink-zt-180-1ghz-10-tablet-21.html"&gt;http://androidforums.com/zenithink-tablets/132917-zenithink-zt-180-1ghz-10-tablet-21.html&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.slatedroid.com/topic/16472-new-official-zt-180-original-2562-froyo-rom-0324/" mce_href="http://www.slatedroid.com/topic/16472-new-official-zt-180-original-2562-froyo-rom-0324/"&gt;http://www.slatedroid.com/topic/16472-new-official-zt-180-original-2562-froyo-rom-0324/&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.slatedroid.com/topic/18741-new-zt-180-v1-256mb2gb-22-rom-0603/" mce_href="http://www.slatedroid.com/topic/18741-new-zt-180-v1-256mb2gb-22-rom-0603/"&gt;http://www.slatedroid.com/topic/18741-new-zt-180-v1-256mb2gb-22-rom-0603/&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px;"&gt;&lt;a href="http://www.chinadigitalcomm.com/zenithink-zt/zt180-won-t-boot-t2347.html" mce_href="http://www.chinadigitalcomm.com/zenithink-zt/zt180-won-t-boot-t2347.html"&gt;http://www.chinadigitalcomm.com/zenithink-zt/zt180-won-t-boot-t2347.html&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;&lt;a href="http://www.androidtablets.net/forum/zenithink-zt180-10-generation-1/1431-flashing-firmware-android-windows-ce-zenithink-zt-180-a.html"&gt;http://www.androidtablets.net/forum/zenithink-zt180-10-generation-1/1431-flashing-firmware-android-windows-ce-zenithink-zt-180-a.html&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.ibeau.net/tech/zenithink-zt-180-2-2-0120-firmware/#more-495" mce_href="http://www.ibeau.net/tech/zenithink-zt-180-2-2-0120-firmware/#more-495"&gt;http://www.ibeau.net/tech/zenithink-zt-180-2-2-0120-firmware/#more-495&lt;/a&gt;&amp;nbsp;ROM 2011-01-20&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.slatedroid.com/topic/18741-new-zt-180-v1-256mb2gb-22-rom-0603/" mce_href="http://www.slatedroid.com/topic/18741-new-zt-180-v1-256mb2gb-22-rom-0603/"&gt;http://www.slatedroid.com/topic/18741-new-zt-180-v1-256mb2gb-22-rom-0603/&lt;/a&gt;&amp;nbsp;ROM 2011-06-03&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" mce_fixed="1" mce_name="strong" mce_style="font-weight: bold;" style="font-weight: bold;"&gt;About Installing Android on Windows Phone&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;How To Install Google Android On A Windows Mobile Phone&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.makeuseof.com/tag/how-to-install-google-android-on-a-windows-mobile-phone/" mce_href="http://www.makeuseof.com/tag/how-to-install-google-android-on-a-windows-mobile-phone/"&gt;http://www.makeuseof.com/tag/how-to-install-google-android-on-a-windows-mobile-phone/&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;How To Install Android 2.1 On Windows Mobile Phones&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://thetechjournal.com/electronics/mobile/how-to-install-android-2-1-on-windows-mobile-phones.xhtml#ixzz12wCg6VSL" mce_href="http://thetechjournal.com/electronics/mobile/how-to-install-android-2-1-on-windows-mobile-phones.xhtml#ixzz12wCg6VSL"&gt;http://thetechjournal.com/electronics/mobile/how-to-install-android-2-1-on-windows-mobile-phones.xhtml#ixzz12wCg6VSL&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://thetechjournal.com/electronics/mobile/how-to-install-android-2-1-on-windows-mobile-phones.xhtml" mce_href="http://thetechjournal.com/electronics/mobile/how-to-install-android-2-1-on-windows-mobile-phones.xhtml"&gt;http://thetechjournal.com/electronics/mobile/how-to-install-android-2-1-on-windows-mobile-phones.xhtml&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://forum.xda-developers.com/showthread.php?t=634782" mce_href="http://forum.xda-developers.com/showthread.php?t=634782"&gt;http://forum.xda-developers.com/showthread.php?t=634782&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;review on Zenithink Android&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://androidforums.com/tablets-mids/132917-zenithink-zt-180-1ghz-10-tablet.html" mce_href="http://androidforums.com/tablets-mids/132917-zenithink-zt-180-1ghz-10-tablet.html"&gt;http://androidforums.com/tablets-mids/132917-zenithink-zt-180-1ghz-10-tablet.html&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" mce_fixed="1" mce_name="strong" mce_style="font-weight: bold;" style="font-weight: bold;"&gt;Developing for Android&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.smashingmagazine.com/2010/10/25/get-started-developing-for-android-with-eclipse/" mce_href="http://www.smashingmagazine.com/2010/10/25/get-started-developing-for-android-with-eclipse/"&gt;http://www.smashingmagazine.com/2010/10/25/get-started-developing-for-android-with-eclipse/&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif;"&gt;Google App Inventor is a RAD tool developed by Google Labs to&amp;nbsp;build Android application in a very simple and easy way&lt;br /&gt;
&lt;a href="http://www.codeproject.com/Article.aspx?tag=198374986188234309" style="color: #0000cc;" target="_blank" wotsearchprocessed="true"&gt;http://www.codeproject.com/&lt;wbr&gt;&lt;/wbr&gt;Article.aspx?tag=&lt;wbr&gt;&lt;/wbr&gt;198374986188234309&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(chrome-extension://bhmmomiinigofkjcapegjjndpbikblnp/skin/fusion/16_16/plain/r5.png); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; cursor: pointer; display: inline-block; height: 16px; margin-left: 4px; padding-bottom: 2px; position: relative; visibility: visible; width: 16px;" wotsearchtarget="codeproject.com"&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div mce_style="padding: 0px; margin: 0px;" style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" mce_fixed="1" mce_name="strong" mce_style="font-weight: bold;" style="font-weight: bold;"&gt;Android Apps&lt;/span&gt;&lt;/div&gt;&lt;div mce_style="padding: 0px; margin: 0px;" style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Top 25 Android apps: The best of the best&lt;/div&gt;&lt;div mce_style="padding: 0px; margin: 0px;" style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://blogs.techrepublic.com.com/hiner/?p=5617" mce_href="http://blogs.techrepublic.com.com/hiner/?p=5617"&gt;http://blogs.techrepublic.com.com/hiner/?p=5617&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;b&gt;Wallpaper&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://isi.edu/~johnh/OTHER/ANDROID/wallpaper/"&gt;http://isi.edu/~johnh/OTHER/ANDROID/wallpaper/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-7823558525171616927?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/X0aC16L1ASRpVJvxG0P7XAAfch4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/X0aC16L1ASRpVJvxG0P7XAAfch4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/X0aC16L1ASRpVJvxG0P7XAAfch4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/X0aC16L1ASRpVJvxG0P7XAAfch4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/F9joLeJPzFQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/7823558525171616927/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=7823558525171616927" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/7823558525171616927?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/7823558525171616927?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/F9joLeJPzFQ/notes-zenithink-zt-180-epad-android.html" title="Notes Zenithink ZT-180 ePad Android" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2010/12/notes-zenithink-zt-180-epad-android.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcAQHY4fyp7ImA9WhRQF0U.&quot;"><id>tag:blogger.com,1999:blog-21773982.post-54183956158914525</id><published>2010-12-11T12:31:00.000-08:00</published><updated>2011-12-13T05:14:01.837-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-13T05:14:01.837-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MIDP" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="KIES" /><category scheme="http://www.blogger.com/atom/ns#" term="Samsung Wave" /><category scheme="http://www.blogger.com/atom/ns#" term="S8500" /><category scheme="http://www.blogger.com/atom/ns#" term="Bada" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Super Amoled" /><title>Notes Samsung Wave</title><content type="html">Few tips on the Samsung Wave, especially information which are not well documented&lt;br /&gt;
&lt;br /&gt;
A few "How do I do it?" answers, and technical specs&lt;br /&gt;
&lt;a href="http://mobilereviews.o2.co.uk/devices/device.jsp?deviceId=661&amp;amp;tab=5#q5387"&gt;http://mobilereviews.o2.co.uk/devices/device.jsp?deviceId=661&amp;amp;tab=5#q5387&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://thetechjournal.com/electronics/mobile/samsung-s8500-wave-review.xhtml"&gt;http://thetechjournal.com/electronics/mobile/samsung-s8500-wave-review.xhtml&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Links to Samsung, Apps, etc&lt;br /&gt;
http://www.samsungapps.com - for Manual and Samsung Kies software&lt;br /&gt;
&lt;a href="http://www.samsung.com/au/consumer/mobile-phone/mobile-phone/smartphone/GT-S8500BAAXSA/index.idx?pagetype=prd_detail&amp;amp;returnurl="&gt;http://www.samsung.com/au/consumer/mobile-phone/mobile-phone/smartphone/GT-S8500BAAXSA/index.idx?pagetype=prd_detail&amp;amp;returnurl=&lt;/a&gt;&lt;br /&gt;
http://www.samsungmobile.com&lt;br /&gt;
&lt;a href="http://www.samsungwaveforum.com/samsung-wave-updates/all-firmwares-s8500xx***-download/"&gt;http://www.samsungwaveforum.com/samsung-wave-updates/all-firmwares-s8500xx***-download/&lt;/a&gt;&amp;nbsp;&amp;nbsp; - list of firmwares&lt;br /&gt;
&lt;a href="http://www.samsungwaveforum.com/samsung-wave-updates/flash-tutorial-samsung-s8500/msg3719/#msg3719"&gt;http://www.samsungwaveforum.com/samsung-wave-updates/flash-tutorial-samsung-s8500/msg3719/#msg3719&lt;/a&gt;&amp;nbsp;- how to flash / upgrade firmware on Samsung Wave&lt;br /&gt;
&lt;a href="http://www.all-samsungphones.com/latest-official-firmware-update-for-samsung-wave-s8500.html/"&gt;http://www.all-samsungphones.com/latest-official-firmware-update-for-samsung-wave-s8500.html/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Java Apps Repository:&lt;br /&gt;
These sites have Java Applications for Smart Phones. Since Samsung Wave have Java compatibility, some Java apps should be able to run, but not all of them. You should check the&amp;nbsp;compatibility&amp;nbsp;of each app that you want to download.&lt;br /&gt;
- www.getjar.com&lt;br /&gt;
&lt;br /&gt;
Screen Capture the Samsung Wave&lt;br /&gt;
- Press the Menu and Lock Keys simultaneously&lt;br /&gt;
- The images will be stored in My Files -&amp;gt; Images&lt;br /&gt;
&lt;br /&gt;
End Applications with Task Manager&lt;br /&gt;
- Click and hold on the&amp;nbsp;physical&amp;nbsp;diamond shaped middle Menu button at the bottom.&lt;br /&gt;
- Touch the red minus sign on-screen to close the application you choose.&lt;br /&gt;
&lt;br /&gt;
Lock screen settings&lt;br /&gt;
- Settings -&amp;gt; General -&amp;gt; Touch - Touch Panel&lt;br /&gt;
&lt;br /&gt;
Silent Mode&lt;br /&gt;
- Keypad -&amp;gt; tap and hold # key to mute/unmute&lt;br /&gt;
&lt;br /&gt;
Check how much data has been used&lt;br /&gt;
- this refers to the packet data, which is usually the data charge by your service provider.&lt;br /&gt;
- go to Menu -&amp;gt; Settings -&amp;gt; Connectivity -&amp;gt; Packet Data Counter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;div style="margin: 0px;"&gt;
Switch off data packet, data allowance&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;div style="margin: 0px;"&gt;
&lt;a href="http://www.samsungwaveforum.com/samsung-wave-how-to/how-to-turn-off-internet-connection-(not-wifi)/" mce_href="http://www.samsungwaveforum.com/samsung-wave-how-to/how-to-turn-off-internet-connection-(not-wifi)/"&gt;http://www.samsungwaveforum.com/samsung-wave-how-to/how-to-turn-off-internet-connection-(not-wifi)/&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;div style="margin: 0px;"&gt;
&lt;a href="http://www.samsungwaveforum.com/samsung-wave-troubleshooting/(bugs)-wave-keeps-using-packet-data/" mce_href="http://www.samsungwaveforum.com/samsung-wave-troubleshooting/(bugs)-wave-keeps-using-packet-data/"&gt;http://www.samsungwaveforum.com/samsung-wave-troubleshooting/(bugs)-wave-keeps-using-packet-data/&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Browser Open&lt;br /&gt;
- Internet icon is missing from some Samsung Wave models.&lt;br /&gt;
- To open the browser either&lt;br /&gt;
i) Menu -&amp;gt; Vibe Home&lt;br /&gt;
ii) Menu -&amp;gt; Smart Search -&amp;gt; Internet&lt;br /&gt;
&lt;br /&gt;
Remove Homescreen&lt;br /&gt;
- Touch the Widget icon on the top left.&lt;br /&gt;
- When in widget editing mode, rotate phone to landscape&lt;br /&gt;
- Then it allows you to remove screens which have no widgets&lt;br /&gt;
&lt;br /&gt;
Edit or Remove Widgets&lt;br /&gt;
- Touch the Widget icon on the top left.&lt;br /&gt;
&lt;div&gt;
- Touch and hold on the widget to be moved or removed, until a yellow border appears&lt;/div&gt;
&lt;div&gt;
- To remove, drag the widget down.&lt;/div&gt;
&lt;div&gt;
- To move, drag the widget anywhere on the screen&lt;br /&gt;
&lt;br /&gt;
Copy Contacts from Phone to SIM or from SIM to Phone.&lt;br /&gt;
- Touch the Contact button at the bottom of the screen.&lt;br /&gt;
- When the list of contacts is displayed, touch the image with 3 dots at the bottom&amp;nbsp;middle&amp;nbsp;&amp;nbsp;"..." of the screen.&lt;br /&gt;
- Touch on "Copy Contacts"&lt;br /&gt;
- Choose whether to copy from Phone to SIM or from SIM to Phone.&lt;br /&gt;
- Then select the contacts to be copied.&lt;br /&gt;
- Touch "Copy"&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;How to Use Samsung Wave S8500 as Modem for other PC or other Devices to connect to the Internet:&lt;/strong&gt;&lt;br /&gt;
This require that the Samsung Wave has data access through a telecommunications carrier. &lt;br /&gt;
This techniques uses Packet Data.&lt;br /&gt;
Basically, if you can access the Internet through your Samsung Wave without wifi connection, then you are likely to be using packet data.&lt;br /&gt;
&lt;br /&gt;
Here are the steps to setup the Samsung Wave to enable other devices to have internet access.&lt;br /&gt;
Go to Settings - Connectivity - Use Packet Data - turn this on.&lt;br /&gt;
Go to Settings - Connectivity - Mobile AP - turn this on.&lt;br /&gt;
Still on the Mobile AP screen, go to Settings:&lt;br /&gt;- Name: name of wifi network&lt;br /&gt;- Password: password for network&lt;br /&gt;- Hide my Device: Uncheck&lt;br /&gt;- Tethering:&amp;nbsp;&amp;nbsp; Check&lt;br /&gt;
Now the Samsung Wave is acting like a wireless modem. Other PC or Devices need only to rescan for wifi networks and connect to the name of the wifi network of the Samsung Wave.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Interesting Apps&lt;/b&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Here is a list of apps I found interesting on the Samsung Wave. The ones listed without URL links mean they can be found on the Samsung Apps website.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp; &lt;i&gt;Educational&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Teach Numbers - good for teaching children&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Write Hangul - learn Korean writing&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Let's Learn Korean&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;i&gt;References&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Badapedia - seems like a cut down version of Wikipedia&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Dictionary.com&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;i&gt;Utilities&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;EvMemo Fit - Memo that sits on top of phone as widget.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Power Calculator - has Scientific, Computer and Statistics modes&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;MultiNote - can make notes in text, image, audio, video formats&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
Scientific Calculator&lt;/div&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;ToolBox - Battery, Spirit Level, Metal Detector&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Type N Walk - allow you to type SMS while using the phone camera to show what is in front of the screen.&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Mirror - to look at yourself on the phone&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Unit Converter&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;i&gt;Bibles &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;KJV Complete Mobile Bible by Cellbook.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Lucida Sans Unicode&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;from the phone: m.getjar.com, go to Quick Download and type the code 19028.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Lucida Sans Unicode&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;website:&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.getjar.com/mobile/19028/kjv-complete-mobile-bible-by-cellbook-for-samsung-gt-s8500-wave/"&gt;http://www.getjar.com/mobile/19028/kjv-complete-mobile-bible-by-cellbook-for-samsung-gt-s8500-wave/&lt;/a&gt;&lt;br /&gt;
Go Bible -&amp;nbsp;&lt;a href="http://gobible.jolon.org/"&gt;http://gobible.jolon.org/&lt;/a&gt;&amp;nbsp;- King James Version&lt;br /&gt;
Olive Tree -&amp;nbsp;&lt;a href="http://www.olivetree.com/"&gt;http://www.olivetree.com/&lt;/a&gt;&amp;nbsp;- in general, has very good bible reader application but its Java version DOES NOT seem to work well with the Samsung Wave.&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;b&gt;Ebook Readers&lt;/b&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;I've tried quite a few eBook Readers and here are the ones to get and NOT to get.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp; &amp;nbsp; &lt;i&gt;Native Wave / Bada&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;LacViet Reader - Do Not Get - Big app, about 14MB. Installed OK. When opening and EPUB format ebook, the program simply crashed.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp; &amp;nbsp; &lt;i&gt;Java Apps - requires MIDP 2.0&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Anyview - Do Not Get - Installed OK but cannot get it to work.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;ReadManiac - Do Not Get - Cannot seem to run when opening the program.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Albite Reader - Excellent - Seems to work quite well and small size.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;b&gt;Folder Structure&lt;/b&gt; &lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
from Kies View:&lt;br /&gt;
- Contacts&lt;br /&gt;
- Music&lt;br /&gt;
- Photos&lt;br /&gt;
- Videos&lt;br /&gt;
- Podcast&lt;br /&gt;
&lt;br /&gt;
from Windows Explorer View:&lt;br /&gt;
- Graphics&lt;br /&gt;
- Images&lt;br /&gt;
- Music&lt;br /&gt;
- Others - your own files&lt;br /&gt;
- Playlists&lt;br /&gt;
- Sounds&lt;br /&gt;
&amp;nbsp; &amp;nbsp; - Alert tones&lt;br /&gt;
&amp;nbsp; &amp;nbsp; - Music&lt;br /&gt;
&amp;nbsp; &amp;nbsp; - Ringtones&lt;br /&gt;
- Themes&lt;br /&gt;
- Videos&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0991060271110706";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQmMekgwIaCLqrEPdAhOEYKMzD4IEBMAA";
google_ad_channel = "3461688952";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21773982-54183956158914525?l=xtechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aKIgk48lrstPqoiRGSvbTozPO1Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aKIgk48lrstPqoiRGSvbTozPO1Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aKIgk48lrstPqoiRGSvbTozPO1Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aKIgk48lrstPqoiRGSvbTozPO1Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~4/YfRw54LHbjc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://xtechnotes.blogspot.com/feeds/54183956158914525/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=21773982&amp;postID=54183956158914525" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/54183956158914525?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21773982/posts/default/54183956158914525?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Xtechnotes-TechnicalComputingProgrammingNotes/~3/YfRw54LHbjc/notessamsungwave.html" title="Notes Samsung Wave" /><author><name>Elkanah</name><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/_6RV3JeBobhw/SON7uwtovzI/AAAAAAAAAJU/Vh_Myk9fQKg/S220/WebPhotoWarp.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://xtechnotes.blogspot.com/2010/12/notessamsungwave.html</feedburner:origLink></entry></feed>

