<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2184087567287643951</atom:id><lastBuildDate>Tue, 13 Oct 2009 23:36:42 +0000</lastBuildDate><title>Simple_Thing</title><description>Any-Thing Simple</description><link>http://ronsi-simple-thing.blogspot.com/</link><managingEditor>noreply@blogger.com (Ronsi)</managingEditor><generator>Blogger</generator><openSearch:totalResults>52</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/blogspot/TgKn" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-4070722791465412888</guid><pubDate>Sat, 11 Jul 2009 05:13:00 +0000</pubDate><atom:updated>2009-07-10T23:40:21.120-07:00</atom:updated><title>Create SQL Server Reporting Service Explorer and Report Viewer with C# Part 1</title><description>&lt;p&gt;Today we will try to create an C# winform application that will explore the SQL Server Reporting Service structure and create a report viewer using reportviewer control.&lt;/p&gt;&lt;p&gt;First, you must have SQL Reporting Server.I have found a detail step-by-step SQL Server 2005 Report installation guide &lt;a href="http://myitforum.com/cs2/blogs/mnielsen/archive/2009/03/21/sql-server-2005-reporting-services-ssrs-installation-and-configuration-for-scmdm-2008-sp1-reporting-services.aspx"&gt;here&lt;/a&gt;. After SQL Server Report has already installed,  we need Web Service URL that will be referenced by our apps later. You can find this URL by open Reporting Service Configuration Manager menu, click Web Service URL. this URL should be like this "http://ServerName/ReportServer".&lt;/p&gt;&lt;p&gt;Now, create a new C# winform project.&lt;/p&gt;&lt;p&gt;- Add Web Service Reference.&lt;/p&gt;&lt;p&gt;Right click Project name, click Add Service Reference.&lt;/p&gt;&lt;p&gt;Input your Web Service URL + "/reportservice2005.asmx"  in "Address" textbox. &lt;/p&gt;&lt;p&gt;If you webservice URL : http://MyServerName/MyReportServer, then you have to input in Address text box : http://MyServerName/MyReportServer/reportservice2005.asmx then click GO.  If Service is found, it will be listed in Services List. In this apps we will use Web Service, instead of Service Reference. To add a web service of current Report Service, click Advance button, Service Reference Settings will be openned, click Add Web Reference. Once again input Web Service URL into Address textbox Click Go. If everything OK, Webservice description will be shown and default web reference name is your reporting server name. You can change this default if you want, then click Add Reference button.&lt;/p&gt;&lt;p&gt;After click Add Reference, in project explorer you will see a new folder named Web Reference is automatically generated,your Web Reference name has already added in this folder, ready to be used by our project. FYI, this web reference is only, some kind of "template". We don;t have to add another Web Service for different SQL Reporting Server. We only need to change Web Service URL, dynamically in source code.&lt;/p&gt;&lt;p&gt;OK, now we're ready to create a report service explorer.&lt;/p&gt;&lt;p&gt;Add A text box : ReportServerURL- (Url address);, Treeview:tvReportServer (Report Service Explorer),  Listview:lvItems(Report Item) and a button:getFolders for refresh Reporting Service.&lt;/p&gt;&lt;p&gt;References :&lt;/p&gt;&lt;p&gt;using System;&lt;/p&gt;&lt;p&gt;//RSS_Report_Retrievers : Name Space; ReportWS : your web reference name
&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#3366ff;"&gt;&lt;em&gt;using RSS_Report_Retrievers.ReportWS;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;em&gt;using System.Windows.Forms;
&lt;br /&gt;using System.Text.RegularExpressions;
&lt;br /&gt;using System.Web.Services.Protocols;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;&lt;p&gt;add reporting Service variable in this form.&lt;/p&gt;&lt;p&gt;&lt;span style="color:#3366ff;"&gt; &lt;em&gt;&lt;span style="font-size:85%;"&gt;ReportWS.ReportingService2005 rs = new RSS_Report_Retrievers.ReportWS.ReportingService2005();&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;a helper procedure :&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#3366ff;"&gt;&lt;em&gt;private void AddNode(string name,string BaseURL)
&lt;br /&gt;        {
&lt;br /&gt;            TreeNode newNode = new TreeNode(name);
&lt;br /&gt;            newNode.ToolTipText = BaseURL;
&lt;br /&gt;            tvReportServer.SelectedNode.Nodes.Add(newNode);
&lt;br /&gt;        }&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;&lt;p&gt;getFolders button click code :&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#3366ff;"&gt;&lt;em&gt;private void getFolders_Click_1(object sender, EventArgs e)
&lt;br /&gt;        {            
&lt;br /&gt;            tvReportServer.Nodes.Clear();
&lt;br /&gt;            lvItems.Items.Clear();
&lt;br /&gt;            rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
&lt;br /&gt;            TreeNode root = new TreeNode();
&lt;br /&gt;            root.Text = "Root";
&lt;br /&gt;            tvReportServer.Nodes.Add(root);
&lt;br /&gt;            tvReportServer.SelectedNode = tvReportServer.TopNode;
&lt;br /&gt;            CatalogItem[] items = null;
&lt;br /&gt;            rs.Url = ReportServerURL.text;
&lt;br /&gt;            // Retrieve a list of items from the server
&lt;br /&gt;            try
&lt;br /&gt;            {
&lt;br /&gt;                items = rs.ListChildren("/", true);
&lt;br /&gt;                int j = 1;
&lt;br /&gt;                // Iterate through the list of items and find all of the folders
&lt;br /&gt;                // and display them to the user
&lt;br /&gt;                foreach (CatalogItem ci in items)
&lt;br /&gt;                {
&lt;br /&gt;                    if (ci.Type == ItemTypeEnum.Folder)
&lt;br /&gt;                    {
&lt;br /&gt;                        Regex rx = new Regex("/");
&lt;br /&gt;                        int matchCnt = rx.Matches(ci.Path).Count;
&lt;br /&gt;                        if (matchCnt &gt; j)
&lt;br /&gt;                        {
&lt;br /&gt;                            tvReportServer.SelectedNode =
&lt;br /&gt;                            tvReportServer.SelectedNode.LastNode;
&lt;br /&gt;                            j = matchCnt;
&lt;br /&gt;                        }
&lt;br /&gt;                        else if (matchCnt &lt; selectednode =" tvReportServer.SelectedNode.Parent;" j =" matchCnt;" type ="=" strpath =" ci.Path.Split('/');" lvi =" new" text =" ci.Name;" tooltiptext =" ci.Path;" imageindex =" ci.Hidden" tag =" ItemTypeEnum.Report;" hideselection =" false;"&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/span&gt;&lt;p&gt;on Click node event :&lt;/p&gt;&lt;p&gt;&lt;span style="color:#3366ff;"&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;private void tvReportServer_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;        {&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;            GetItems(e.Node.ToolTipText);&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;        }&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="color:#3366ff;"&gt;&lt;span style="font-size:85%;"&gt;public void GetItems(string strPath)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;        {&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;            CatalogItem[] items = null;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;            lvItems.Items.Clear();&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;            try&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;            {&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                //false : get item on selected folder&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                //true : get all item, include subfolder&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                items = rs.ListChildren(strPath=="" ? "/":strPath,  false); &lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                // Iterate through the list of items and find all of the folders&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                // and display them to the user&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                foreach (CatalogItem ci in items)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                {&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                    if (ci.Type == ItemTypeEnum.Report )&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                    {&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                        ListViewItem lvi = new ListViewItem();&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                        lvi.Text = ci.Name;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                        lvi.ToolTipText = ci.Path;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                        switch (ci.Type)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                        {&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                            case ItemTypeEnum.Report:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                                lvi.ImageIndex = ci.Hidden ? 5 : 1;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                                lvi.Tag = ItemTypeEnum.Report;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                                break;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                        }&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                        lvItems.Items.Add(lvi);&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                    }&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                }&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;            }&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;            catch (SoapException ex)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;            {&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                MessageBox.Show(ex.Detail.InnerXml.ToString());&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;            }&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;            catch (Exception ex)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;            {&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                MessageBox.Show(ex.Message);&lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;            }        &lt;/span&gt;&lt;span style="font-size:85%;"&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;        }&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;
&lt;br /&gt; 
&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here is a sample application screen shot, in Part 2 we will add a Report Viewer.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#3366ff;"&gt;&lt;em&gt;
&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_K4VIdFybpsg/SlgxNgZ71JI/AAAAAAAAADA/PyHxuR9uoDo/s1600-h/Sample.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 94px;" src="http://4.bp.blogspot.com/_K4VIdFybpsg/SlgxNgZ71JI/AAAAAAAAADA/PyHxuR9uoDo/s320/Sample.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5357085864863978642" /&gt;&lt;/p&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;to be continued....&lt;/p&gt;&lt;/strong&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-4070722791465412888?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xYqdlevacsDEcxhPtovAdsgOfQQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xYqdlevacsDEcxhPtovAdsgOfQQ/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/xYqdlevacsDEcxhPtovAdsgOfQQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xYqdlevacsDEcxhPtovAdsgOfQQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/9fUiKRUqbYs" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/9fUiKRUqbYs/create-sql-server-reporting-service.html</link><author>noreply@blogger.com (Ronsi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_K4VIdFybpsg/SlgxNgZ71JI/AAAAAAAAADA/PyHxuR9uoDo/s72-c/Sample.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/07/create-sql-server-reporting-service.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-6969425696680320290</guid><pubDate>Mon, 23 Mar 2009 05:20:00 +0000</pubDate><atom:updated>2009-03-22T22:21:48.677-07:00</atom:updated><title /><description>#!/bin/bash&lt;br /&gt;#script to play xmacro file in x millisecond interval and play it x times&lt;br /&gt;for (( c=1; c&lt;=$3; c++ ))&lt;br /&gt;do&lt;br /&gt;cat $1 | xmacroplay -d $2 :0&lt;br /&gt;done&lt;br /&gt;echo "End Macro.. thank you for playing with me.. "&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-6969425696680320290?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sAF7yy0S_oADdtKaxafpUIlQblI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sAF7yy0S_oADdtKaxafpUIlQblI/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/sAF7yy0S_oADdtKaxafpUIlQblI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sAF7yy0S_oADdtKaxafpUIlQblI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/kPeD9mYO9AE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/kPeD9mYO9AE/binbash-script-to-play-xmacro-file-in-x.html</link><author>noreply@blogger.com (Ronsi)</author><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/03/binbash-script-to-play-xmacro-file-in-x.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-6983158761927070565</guid><pubDate>Fri, 06 Mar 2009 05:27:00 +0000</pubDate><atom:updated>2009-03-05T21:32:51.657-08:00</atom:updated><title>Excel VBA Macro Programming</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://ecx.images-amazon.com/images/I/51bSGeKc78L._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 240px; height: 240px;" src="http://ecx.images-amazon.com/images/I/51bSGeKc78L._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg" border="0" alt="" /&gt;Product Description&lt;br /&gt;&lt;/a&gt;&lt;p&gt;Make Excel work harder and faster for you. This unique book presents sample code for more than twenty practical, high-powered Excel VBA macro applications. You'll get all the essentials of VBA, and then explore ways to power Excel with VBA. Automate tasks, convert numbers to labels, transpose cells, add formula details, globally changes values, and much, much more.&lt;/p&gt;&lt;p&gt;download &lt;a href="http://www.ziddu.com/download/3752328/excelvbamacroprog.rar.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-6983158761927070565?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/atDLXAVWQMjsOOUd_cq3e9o_agY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/atDLXAVWQMjsOOUd_cq3e9o_agY/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/atDLXAVWQMjsOOUd_cq3e9o_agY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/atDLXAVWQMjsOOUd_cq3e9o_agY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/eWeFOWs9zwA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/eWeFOWs9zwA/excel-vba-macro-programming.html</link><author>noreply@blogger.com (Ronsi)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/03/excel-vba-macro-programming.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-6047640951573231430</guid><pubDate>Sat, 21 Feb 2009 09:46:00 +0000</pubDate><atom:updated>2009-02-21T01:47:31.866-08:00</atom:updated><title>Blogging with the New Google Blogger</title><description>&lt;p&gt;Blogging with the New Google Blogger is a digital short cut that covers Google's newest version of Blogger, their free software for creating a website from which to post thoughts, interact with people, and more. This short cut serves as an introduction to the world of blogging and to the Blogger application, as well as a guide to the new version of Blogger. Readers will learn how the new version of Blogger differs from the original version and how to create a Blogger blog. Advanced users will appreciate the information on customizing blog templates, using HTML, hosting their own Blogger blog, syndicating their blogs with RSS and Atom feeds, and making money with blog advertising.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;download...[&lt;a href="http://www.ziddu.com/download/3589846/newgoogle.blogger.rar.html"&gt;x0x0x0&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-6047640951573231430?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EoiuNsqYY9LR7CSvzWJR_vT2MNM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EoiuNsqYY9LR7CSvzWJR_vT2MNM/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/EoiuNsqYY9LR7CSvzWJR_vT2MNM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EoiuNsqYY9LR7CSvzWJR_vT2MNM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/t3p1L-8jSqQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/t3p1L-8jSqQ/blogging-with-new-google-blogger.html</link><author>noreply@blogger.com (Ronsi)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/02/blogging-with-new-google-blogger.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-8845487970871788469</guid><pubDate>Sat, 21 Feb 2009 09:43:00 +0000</pubDate><atom:updated>2009-02-21T01:48:43.493-08:00</atom:updated><title>SEO Book</title><description>Search engines take advantage of reverse broadcast networks to help save you time and money. Search allows you to "sell what your customers want, when they want it!"  &lt;br /&gt;&lt;br /&gt;Finding Prospects &lt;br /&gt;&lt;br /&gt; I had just finished reading Permission Marketing when I exchanged in one of the most interesting chat sessions of my life. A random kid from California instant messaged me to say hello. In much the same way as other marketers do, he scouted the web to find his ideal client. This guy searched through Yahoo! profiles and found that on my profile I wrote that I collected baseball cards. &lt;br /&gt;&lt;br /&gt;He wanted to know if Barry Bonds was my favorite player. He told me he had over 16,000 Barry Bonds cards. I told him that I had an autographed serial numbered Barry Bonds rookie, but baseball cards did not mean much to me anymore. &lt;br /&gt;&lt;br /&gt;I asked if he did business over the internet. He, of course, said no. It was clear to me why. He had no way to display any of his cards, and he was using spam to contact people. I asked him if he wanted to have a website on which to sell his cards. &lt;br /&gt;&lt;br /&gt;He told me he couldn't afford it. He said that it was too expensive. What is a fair price for limitless distribution? &lt;br /&gt;download ....{&lt;a href="http://www.ziddu.com/download/3589845/seo%20book.pdf.html"&gt;oooo&lt;/a&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-8845487970871788469?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NDc2HbGo0VyHHF-VihkJAKUG8NQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NDc2HbGo0VyHHF-VihkJAKUG8NQ/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/NDc2HbGo0VyHHF-VihkJAKUG8NQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NDc2HbGo0VyHHF-VihkJAKUG8NQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/5I-DD8vJuCM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/5I-DD8vJuCM/seo-book.html</link><author>noreply@blogger.com (Ronsi)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/02/seo-book.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-5654196832425256427</guid><pubDate>Sat, 21 Feb 2009 09:39:00 +0000</pubDate><atom:updated>2009-02-21T01:49:17.076-08:00</atom:updated><title>Google Adsense Secret Expanded</title><description>Introduction &lt;br /&gt;&lt;br /&gt;How   To Make More Money With Google   AdSense &lt;br /&gt;&lt;br /&gt;Google wants a slice of your traffic. And they're willing to pay big bucks! &lt;br /&gt;&lt;br /&gt;For those who have been complaining of high traffic and low sales, there's simply no better way to cash in on those hard-earned visitors to your web pages. &lt;br /&gt;&lt;br /&gt;AdSense makes it so easy! &lt;br /&gt;&lt;br /&gt;There's no complicated software to install, no need to scout for affiliates, nothing to buy and no need to even have a merchant account. So… &lt;br /&gt;&lt;br /&gt;Why isn't everybody doing this? More importantly, why isn't everybody making the most of it? &lt;br /&gt;&lt;br /&gt;It's "Hidden Money" &lt;br /&gt;&lt;br /&gt;"Seeing is believing", they say. Most webmasters love to obsessively track their visitors, earnings and CTR's several times a day. They love to see what's there, but they often miss what can be. &lt;br /&gt;&lt;br /&gt;AdSense doesn't give you ultimate control over which ads are served, how the ads are rotated or what each click is worth. That's a good thing, because it's hands-free income. (It does give you some control though, and I’ll tell you how to use those controls in this book.) &lt;br /&gt;&lt;br /&gt;But many webmasters still think that once you've stuck the AdSense code on your page, there's little you can do except wait and watch. &lt;br /&gt;&lt;br /&gt;&lt;p&gt;Nothing could be further from the truth! Google gives you a great deal of control over your ads, and especially their visual or graphic elements. By tweaking these elements to your advantage, you could easily — in as little as a few minutes — multiply your click-throughs many, many times over! &lt;/p&gt;&lt;p&gt;download  ..&lt;a href="http://www.ziddu.com/download/3589844/Google.Adsense.Secrets.4.expanded.pdf.html"&gt;(*)(*)&lt;/a&gt;...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-5654196832425256427?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CQeVk_JiRJRlrkCmdFXhcUQ2CmE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CQeVk_JiRJRlrkCmdFXhcUQ2CmE/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/CQeVk_JiRJRlrkCmdFXhcUQ2CmE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CQeVk_JiRJRlrkCmdFXhcUQ2CmE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/IiveQwVtXsk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/IiveQwVtXsk/google-adsense-secret-expanded.html</link><author>noreply@blogger.com (Ronsi)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/02/google-adsense-secret-expanded.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-8388672436973953895</guid><pubDate>Sat, 21 Feb 2009 09:31:00 +0000</pubDate><atom:updated>2009-02-21T01:39:04.337-08:00</atom:updated><title>Adsense BlackHat Edition</title><description>Even if you’re still a beginner, once you are familiar with AdSense, chances are that you will be able to use apply these techniques on your own to start earning revenue in only hours. &lt;br /&gt;&lt;br /&gt;“BlackHatting,” a term which refers to the methods and techniques contained  within  this  ebook,  is  often  considered  by  industry professionals as being closely related to spamming. Some may even say it is unethical. However, to a skilled BlackHatter, it’s a matter of semantics. To be successful, a BlackHatter will do whatever it takes to achieve their objectives. For instance, if a particular search engine prefers sites that are heavily linked to, we will find every corner of the web where we can plant our links in an effort to appease that engine. In fact, this is a huge part of the overall SEO process. &lt;br /&gt;&lt;br /&gt;Now, if we can drive traffic to 100 pages, we can drive traffic to 1,000,000 pages. The key to being successful is being able to instantly create those pages on the fly, and keep them relevant so traffic will keep being directed to them. It’s really as simple as that...&gt;&gt;&lt;a href="http://www.ziddu.com/download/3589843/AdSense-BlackHat-Edition.rar.html"&gt;000&lt;/a&gt;&lt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-8388672436973953895?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BfAxWCcbqqr5Dil6lpdvEAdZz38/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BfAxWCcbqqr5Dil6lpdvEAdZz38/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/BfAxWCcbqqr5Dil6lpdvEAdZz38/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BfAxWCcbqqr5Dil6lpdvEAdZz38/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/Oq3dULy3jvw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/Oq3dULy3jvw/adsense-balckhat-edition.html</link><author>noreply@blogger.com (Ronsi)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/02/adsense-balckhat-edition.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-1544803858750076883</guid><pubDate>Sat, 21 Feb 2009 08:20:00 +0000</pubDate><atom:updated>2009-02-21T00:26:38.308-08:00</atom:updated><title>1000 Java tips</title><description>&lt;p&gt;Prepare for your Java certifications... &lt;/p&gt;&lt;p&gt;the &lt;a href="http://www.ziddu.com/downloadlink/3589028/1000JavaTips.zip"&gt;link&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-1544803858750076883?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jb1PteRlDe1OxM2MpNnghs2vICA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jb1PteRlDe1OxM2MpNnghs2vICA/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/jb1PteRlDe1OxM2MpNnghs2vICA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jb1PteRlDe1OxM2MpNnghs2vICA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/8DyIUZTuw9E" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/8DyIUZTuw9E/1000-java-tips.html</link><author>noreply@blogger.com (Ronsi)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/02/1000-java-tips.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-6104180118070335480</guid><pubDate>Sat, 21 Feb 2009 08:16:00 +0000</pubDate><atom:updated>2009-02-21T00:20:10.634-08:00</atom:updated><title>Designing Interfaces</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://ecx.images-amazon.com/images/I/51dNcG6NPtL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 240px; height: 240px;" src="http://ecx.images-amazon.com/images/I/51dNcG6NPtL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Designing a good interface isn't easy. Users demand software that is well-behaved, good-looking, and easy to use. Your clients or managers demand originality and a short time to market. Your UI technology -- Web applications, desktop software, even mobile devices -- may give you the tools you need, but little guidance on how to use them well.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;UI designers over the years have refined the art of interface design, evolving many best practices and reusable ideas. If you learn these, and understand why the best user interfaces work so well, you too can design engaging and usable interfaces with less guesswork and more confidence.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Designing Interfaces captures those best practices as design patterns -- solutions to common design problems, tailored to the situation at hand. Each pattern contains practical advice that you can put to use immediately, plus a variety of examples illustrated in full color. You'll get recommendations, design alternatives, and warnings&lt;br /&gt;on when not to use them.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Each chapter's introduction describes key design concepts that are often misunderstood, such as affordances, visual hierarchy, navigational distance, and the use of color. These give you a deeper understanding of why the patterns work, and how to apply them with more insight.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;A book can't design an interface for you -- no foolproof design process is given here -- but Designing Interfaces does give you concrete ideas that you can mix and recombine as you see fit. Experienced designers can use it as a sourcebook of ideas. Novice designers will find a roadmap to the world of interface and interaction design, with enough guidance to start using these patterns immediately.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.ziddu.com/downloadlink/3589027/ebc_designing_interfaces.rar"&gt;here it is&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-6104180118070335480?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TGxcDo0SoYvo-aVjj07Uy7yJGUI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TGxcDo0SoYvo-aVjj07Uy7yJGUI/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/TGxcDo0SoYvo-aVjj07Uy7yJGUI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TGxcDo0SoYvo-aVjj07Uy7yJGUI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/zCemb8tRBuM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/zCemb8tRBuM/designing-interfaces.html</link><author>noreply@blogger.com (Ronsi)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/02/designing-interfaces.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-1417803421509146417</guid><pubDate>Sat, 21 Feb 2009 07:43:00 +0000</pubDate><atom:updated>2009-02-20T23:48:33.978-08:00</atom:updated><title>.NET Book Zero</title><description>&lt;strong&gt;What the C or C++ Programmer Needs to&lt;br /&gt;Know about C# and the .NET Framework&lt;/strong&gt;&lt;br /&gt;by&lt;br /&gt;Charles Petzold&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Why This Book?&lt;/span&gt;&lt;br /&gt;Some books have a Chapter Zero. That‘s the chapter with the stuff the&lt;br /&gt;reader needs to know before reading Chapter One. Chapter Zero might be&lt;br /&gt;a refresher course in subjects the reader once knew but has now forgot-&lt;br /&gt;ten, or it might be a quick-and-dirty summary of prerequisites for the&lt;br /&gt;rest of the book.&lt;br /&gt;This book originated as a Chapter Zero in my book Applications = Code +&lt;br /&gt;Markup: A Guide to the Microsoft Windows Presentation Foundation&lt;br /&gt;(Microsoft Press, 2006), which is about the new Windows client program-&lt;br /&gt;ming platform that‘s part of Microsoft .NET 3.0 and Microsoft Windows&lt;br /&gt;Vista. &lt;br /&gt;I wanted Applications = Code + Markup to focus almost exclusively on the&lt;br /&gt;Windows Presentation Foundation. I knew there was enough to cover&lt;br /&gt;without going into the basics of general .NET programming and C#. Yet, I&lt;br /&gt;wasn‘t sure how much .NET my readers would know. I started writing a&lt;br /&gt;Chapter Zero for the book that would summarize all the basics of .NET&lt;br /&gt;and C# for the C and C++ programmers who might be coming to .NET for&lt;br /&gt;the very first time.&lt;br /&gt;It soon became evident that this Chapter Zero would be very long. It&lt;br /&gt;occurred to me that I could extract the material and make it a book on&lt;br /&gt;its own. And so I did and this is it. What you have in your hands (or are&lt;br /&gt;reading on a screen) is an introduction to C# and those topics in .NET&lt;br /&gt;that are typically found in all .NET programming... get it &lt;a href="http://www.ziddu.com/download/3588736/DotNetBookZero11.rar.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-1417803421509146417?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NSNiF13ltmtDmRrqV8DixcurGmo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NSNiF13ltmtDmRrqV8DixcurGmo/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/NSNiF13ltmtDmRrqV8DixcurGmo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NSNiF13ltmtDmRrqV8DixcurGmo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/aD_BGyxTCZA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/aD_BGyxTCZA/net-book-zero.html</link><author>noreply@blogger.com (Ronsi)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/02/net-book-zero.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-4687621988112230190</guid><pubDate>Sat, 21 Feb 2009 07:28:00 +0000</pubDate><atom:updated>2009-02-20T23:31:19.217-08:00</atom:updated><title>Java Script Hijacking</title><description>An increasing number of rich Web applications, often called Ajax applications, make use of &lt;br /&gt;JavaScript as a data transport mechanism. This paper describes a vulnerability we term JavaScript &lt;br /&gt;Hijacking, which allows an unauthorized party to read confidential data contained in JavaScript &lt;br /&gt;messages. The attack works by using a [script] tag to circumvent the Same Origin Policy &lt;br /&gt;enforced by Web browsers. Traditional Web applications are not vulnerable because they do not &lt;br /&gt;use JavaScript as a data transport mechanism. &lt;br /&gt;We analyzed 12 popular Ajax frameworks ... get it &lt;a href="http://www.ziddu.com/download/3588734/JavaScript_Hijacking.pdf.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-4687621988112230190?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RQBfjK4iWCmv--_FOdF1KjQXKCA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RQBfjK4iWCmv--_FOdF1KjQXKCA/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/RQBfjK4iWCmv--_FOdF1KjQXKCA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RQBfjK4iWCmv--_FOdF1KjQXKCA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/Ve0RWyGLkFU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/Ve0RWyGLkFU/java-script-hijacking.html</link><author>noreply@blogger.com (Ronsi)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/02/java-script-hijacking.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-6584566089256887680</guid><pubDate>Sat, 21 Feb 2009 07:21:00 +0000</pubDate><atom:updated>2009-02-20T23:27:57.245-08:00</atom:updated><title>Spidering Hacks</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://ecx.images-amazon.com/images/I/416BX9E6CfL._SL160_PIsitb-sticker-arrow-dp,TopRight,12,-18_SH30_OU01_AA115_.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 115px; height: 115px;" src="http://ecx.images-amazon.com/images/I/416BX9E6CfL._SL160_PIsitb-sticker-arrow-dp,TopRight,12,-18_SH30_OU01_AA115_.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Why Spidering Hacks?&lt;br /&gt;&lt;/p&gt;The term hacking has a bad reputation in the press. They use it to refer to someone who breaks into systems or wreaks havoc with computers as their weapon. Among people who write code, though, the term hack refers to a "quick-n-dirty" solution to a problem or a clever way to get something done. And the term hacker is taken very much as a compliment, referring to someone as being creative, having the technical chops to get things done. The Hacks series is an attempt the reclaim the word, document the ways people are hacking (in a good way), and pass the hacker ethic of creative participation on to the uninitiated. Seeing how others approach systems and problems is often the quickest way to learning about a new technology.&lt;br /&gt;&lt;br /&gt;Spidering Hacks is about coming up with easier, more automated ways of performing everyday tasks and gathering information. Yes, there are legal issues to consider, and we address them in this book before delving into any code whatsoever. Likewise, there are many right and wrong ways to scrape and compile information; the best practices in this book create wholesome spiders, as opposed to harmful or out-of-control automatons.&lt;br /&gt;&lt;br /&gt;download  &lt;a href="http://www.ziddu.com/download/3588733/Spidering%20Hacks.rar.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-6584566089256887680?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oajrtx97GP7M_GTgBUhCUp5zP6Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oajrtx97GP7M_GTgBUhCUp5zP6Q/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/oajrtx97GP7M_GTgBUhCUp5zP6Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oajrtx97GP7M_GTgBUhCUp5zP6Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/m7OvaXfKWLo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/m7OvaXfKWLo/spidering-hacks.html</link><author>noreply@blogger.com (Ronsi)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/02/spidering-hacks.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-8730914342596944515</guid><pubDate>Thu, 19 Feb 2009 07:02:00 +0000</pubDate><atom:updated>2009-02-18T23:07:19.807-08:00</atom:updated><title>MCDST 70-271 Supporting Users and Troubleshooting a MS Windows XP OS</title><description>&lt;p&gt;&lt;strong&gt;Supporting Users and Troubleshooting a MS Windows XP OS 199q&lt;/strong&gt;&lt;br /&gt;Number: 70-271&lt;br /&gt;Passing Score: 850&lt;br /&gt;Time Limit: 120 min&lt;br /&gt;File Version: 4-4-06&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Exam A&lt;br /&gt;&lt;strong&gt;QUESTION 1&lt;/strong&gt;&lt;br /&gt;You are the help desk support staff for Nightshade.com. Nightshade.com uses Windows XP Professional as&lt;br /&gt;the mainstream desktop OS. You need to install XP. You want to modify the way the wizard installs Windows&lt;br /&gt;XP Professional. Which of the following are NOT the valid ways to do so? (choose all that apply).&lt;br /&gt;A.  Choose the Advanced Options of the Setup Wizard&lt;br /&gt;B.  Choose the Custom Options of the Setup Wizard&lt;br /&gt;C.  Choose the Advanced Options of NTDSUTIL&lt;br /&gt;D.  Prepare a customized setup.sif file manually&lt;br /&gt;E.  Prepare a customized winnt.ini file manually&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Answer:&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;BCDE&lt;br /&gt;&lt;strong&gt;Section:&lt;/strong&gt; (none)&lt;br /&gt;&lt;strong&gt;Explanation/Reference:&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;According to Microsoft KB: If you want to modify the way the wizard installs Windows XP Professional, click&lt;br /&gt;Advanced Options, and then&lt;/span&gt; ....&lt;span style="color:#3333ff;"&gt;download &lt;a href="http://www.filefactory.com/file/af1bbdc/n/70-271_v4_4_6_pdf"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-8730914342596944515?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CNAq6uEYUjqYkiP1PhrQe90Y8lA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CNAq6uEYUjqYkiP1PhrQe90Y8lA/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/CNAq6uEYUjqYkiP1PhrQe90Y8lA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CNAq6uEYUjqYkiP1PhrQe90Y8lA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/d05aPOYzb3Q" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/d05aPOYzb3Q/mcdst-70-271-supporting-users-and.html</link><author>noreply@blogger.com (Ronsi)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/02/mcdst-70-271-supporting-users-and.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-78029139499948866</guid><pubDate>Wed, 18 Feb 2009 09:42:00 +0000</pubDate><atom:updated>2009-02-18T02:03:20.227-08:00</atom:updated><title>Beautiful Architecture, 1st Edition</title><description>&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_K4VIdFybpsg/SZvYPd2ZpzI/AAAAAAAAAC4/T4D4uDpyp5M/s1600-h/Beautiful.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 77px; height: 100px;" src="http://4.bp.blogspot.com/_K4VIdFybpsg/SZvYPd2ZpzI/AAAAAAAAAC4/T4D4uDpyp5M/s400/Beautiful.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5304070746381330226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Publisher: O'Reilly Media, Inc. &lt;br /&gt;Pub Date: January 29, 2009 &lt;br /&gt;Print ISBN-13: 978-0-596-51798-4 &lt;br /&gt; &lt;br /&gt;Pages: 432 &lt;/p&gt;&lt;p&gt;Download&lt;br /&gt;&lt;a href="http://www.filefactory.com/file/af08e5a/n/Beautiful_Architecture_rar"&gt;FileFactory&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.ziddu.com/downloadlink/3557765/BeautifulArchitecture.rar"&gt;Ziddu&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Overview&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;What are the ingredients of robust, elegant, flexible, and maintainable software architecture? Beautiful Architecture answers this question through a collection of intriguing essays from more than a dozen of today's leading software designers and architects. In each essay, contributors present a notable software architecture, and analyze what makes it innovative and ideal for its purpose. Some of the engineers in this book reveal how they developed a specific project, including decisions they faced and tradeoffs they made. Others take a step back to investigate how certain architectural aspects have influenced computing as a whole. With this book, you'll discover: &lt;br /&gt;&lt;br /&gt;How Facebook's architecture is the basis for a data-centric application ecosystem&lt;br /&gt;&lt;br /&gt;The effect of Xen's well-designed architecture on the way operating systems evolve&lt;br /&gt;&lt;br /&gt;How community processes within the KDE project help software architectures evolve from rough sketches to beautiful systems&lt;br /&gt;&lt;br /&gt;How creeping featurism has helped GNU Emacs gain unanticipated functionality&lt;br /&gt;&lt;br /&gt;The magic behind the Jikes RVM self-optimizable, self-hosting runtime&lt;br /&gt;&lt;br /&gt;Design choices and building blocks that made Tandem the choice platform in high-availability environments for over two decades&lt;br /&gt;&lt;br /&gt;Differences and similarities between object-oriented and functional architectural views&lt;br /&gt;&lt;br /&gt;How architectures can affect the software's evolution and the developers' engagement&lt;br /&gt;&lt;br /&gt;Go behind the scenes to learn what it takes to design elegant software architecture, and how it can shape the way you approach your own projects, with Beautiful Architecture.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-78029139499948866?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5FiWSt2voANHHw1DuP8GYNs7MTo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5FiWSt2voANHHw1DuP8GYNs7MTo/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/5FiWSt2voANHHw1DuP8GYNs7MTo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5FiWSt2voANHHw1DuP8GYNs7MTo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/R0mvZbQQWR8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/R0mvZbQQWR8/beautiful-architecture-1st-edition.html</link><author>noreply@blogger.com (Ronsi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_K4VIdFybpsg/SZvYPd2ZpzI/AAAAAAAAAC4/T4D4uDpyp5M/s72-c/Beautiful.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/02/beautiful-architecture-1st-edition.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-3768286989934803162</guid><pubDate>Wed, 11 Feb 2009 07:23:00 +0000</pubDate><atom:updated>2009-02-11T02:17:39.536-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">MSAccess</category><title>Get MSAccess Database Structure from VB</title><description>&lt;p&gt;It will be great if we can build the structure of MS Access file, outside MS Access application.  We can explore them and if possible update them.&lt;/p&gt;&lt;p&gt;At first, I thought MSAccess have some kind of header file yg store the it's structure. But I was wrong. Ms access objects are stored in system Objects database (&lt;strong&gt;MSysobjects&lt;/strong&gt;)!!!!. I never knew that Access also have system objects like SQL Server (&lt;strong&gt;Sysobjects&lt;/strong&gt;). So I start to dig this table deeper. And I have to face the first challenge.... If we connect to Access DB, the default is we don't have right to &lt;em&gt;&lt;strong&gt;SELECT&lt;/strong&gt;&lt;/em&gt; &lt;strong&gt;MSysobjects&lt;/strong&gt;  table. I have tried to search in internet, they suggest to grant access to all MS Access object to administrator by using MS Access application. I can't take this as a solution for this problem, I have to stop for a moment... caused I don't know the solution.&lt;/p&gt;&lt;p&gt;After searching deeper again, i find the simple solution for this.  MS Access has a file that store Access user logins and passwords from Workgroup information, it;s called &lt;strong&gt;System.mdw&lt;/strong&gt;. We will add this file in connection string.&lt;/p&gt;&lt;p&gt;Here is the standard connection string &lt;/p&gt;&lt;p&gt;&lt;span style="color:#3333ff;"&gt;&lt;span style="font-size:85%;"&gt;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Microsoft Office\Office12\Samples\Northwind.mdb;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;And this is additional "system.mdw" (xxxx would be windows user):&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#000099;"&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;Jet OLEDB:System Database=C:\Documents and Settings\xxxx\Application Data\Microsoft\Access\system.mdw&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;With this connection string, we can execute this query&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000099;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;strong&gt;&lt;span style="color:#000099;"&gt;&lt;span style="font-size:78%;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/em&gt;&lt;strong&gt;&lt;span style="color:#000099;"&gt;&lt;span style="font-size:78%;"&gt;GRANT SELECT ON TABLE MSysObjects TO PUBLIC&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;em&gt;&lt;strong&gt;&lt;span style="color:#000099;"&gt;&lt;span style="font-size:78%;"&gt;".&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/em&gt;&lt;span style="color:#000099;"&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;Next, we can &lt;strong&gt;SELECT&lt;/strong&gt; the &lt;strong&gt;MSysObjects&lt;/strong&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;We will only look at these fields (Name and Type), other fields will be on the post..&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;Field Type is describe the type of access object. Here is list of Access Object Type&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;&lt;strong&gt;Type of Object                 Value of MSysObjects.Type&lt;/strong&gt;&lt;br /&gt;Tables                                                         1&lt;br /&gt;Attached Tables                                   6&lt;br /&gt;Forms                                                       -32768&lt;br /&gt;Queries                                                     5&lt;br /&gt;Reports                                                    -32764&lt;br /&gt;Modules                                                  -32761&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;here is the sample code&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color:#3333ff;"&gt;&lt;strong&gt;Private Sub Command1_Click()&lt;br /&gt;Dim db As New ADODB.Connection&lt;br /&gt;Dim rs As New ADODB.Recordset&lt;br /&gt;Dim sPath As String&lt;br /&gt;Dim sSQL As String&lt;br /&gt;Dim cmd As ADODB.Command&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;sPath = "C:\Program Files\Microsoft Office\Office12\Samples\Northwind.mdb"&lt;br /&gt;sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Microsoft Office\Office12\Samples\Northwind.mdb;" &amp;amp; _&lt;br /&gt;            "Jet OLEDB:System Database=C:\Documents and Settings\ronsi\Application Data\Microsoft\Access\system.mdw"&lt;br /&gt;db.ConnectionString = sConn&lt;br /&gt;db.Open&lt;br /&gt;Set cmd = New ADODB.Command&lt;br /&gt;cmd.ActiveConnection = db&lt;br /&gt;cmd.CommandType = adCmdText&lt;br /&gt;cmd.CommandText = "GRANT SELECT ON TABLE MSysObjects TO PUBLIC"&lt;br /&gt;cmd.Execute&lt;br /&gt;&lt;br /&gt;sSQL = "SELECT Name,type,owner,parentid FROM MSysobjects order by type"&lt;br /&gt;&lt;br /&gt;With rs&lt;br /&gt;.ActiveConnection = db&lt;br /&gt;.LockType = adLockOptimistic&lt;br /&gt;.CursorType = adOpenKeyset&lt;br /&gt;.Open sSQL&lt;br /&gt;End With&lt;br /&gt;&lt;br /&gt;Dim s As String&lt;br /&gt;For j = 0 To rs.Fields.Count - 1&lt;br /&gt;    s = s &amp;amp; vbTab &amp;amp; rs.Fields(j).Name&lt;br /&gt;    Next j&lt;br /&gt;&lt;br /&gt;If rs.RecordCount &gt; 0 Then&lt;br /&gt;    For i = 1 To rs.RecordCount&lt;br /&gt;            For j = 0 To rs.Fields.Count - 1&lt;br /&gt;                s = IIf(IsNull(rs.Fields(j).Value), "", rs.Fields(j).Value)&lt;br /&gt;                If j = 0 Then&lt;br /&gt;                       ListView1.ListItems.Add , , s&lt;br /&gt;                Else&lt;br /&gt;                      ListView1.ListItems(i).ListSubItems.Add , , s&lt;br /&gt;                End If&lt;br /&gt;            Next j&lt;br /&gt;            rs.MoveNext&lt;br /&gt;    Next i&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;that's it for now...&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;&lt;strong&gt;to be continued...&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-3768286989934803162?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5FdwrW5nf72TCiDfvoxmtcuiKCY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5FdwrW5nf72TCiDfvoxmtcuiKCY/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/5FdwrW5nf72TCiDfvoxmtcuiKCY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5FdwrW5nf72TCiDfvoxmtcuiKCY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/3mNBteR5fOk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/3mNBteR5fOk/get-msaccess-database-structure-from-vb.html</link><author>noreply@blogger.com (Ronsi)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/02/get-msaccess-database-structure-from-vb.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-2675656058077880182</guid><pubDate>Mon, 09 Feb 2009 11:12:00 +0000</pubDate><atom:updated>2009-02-09T03:42:56.990-08:00</atom:updated><title>Using SQL Server Integration Services to Search Similar Data</title><description>SQL Server 2005 Integration Services (SSIS) introduces two new tools designed for Data Warehousing, but their uses are far more than just warehousing. Fuzzy Lookups and Fuzzy Grouping can both improve quality of data. Fuzzy lookups is designed to correct errors in lookup tables such as misspelling in cities or states. Fuzzy grouping finds duplicates in datasets. The hospital where I work strives to identify and merge duplicates to improve and maintain one complete electronic medical record for each patient. We have been using the fuzzy grouping tool for the past 6 months.&lt;br /&gt;&lt;p&gt;The concept of fuzzy grouping is not new; many have used probabilistic linkage of datasets to find duplicates and related records in other datasets (for more info visit http://www.utcodes.org/Linkage/description.htm). Few commercial probabilistic linkage packages are available and they are expensive. With SSIS we now have a free tool to do probabilistic linkages.&lt;br /&gt;&lt;/p&gt;&lt;strong&gt;Fix the SSIS executables first &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;First install service pack 2 or the memory leak fix http://support.microsoft.com/kb/912423/. This fix resolves many memory issues when using record sets with over 1 million records, but there are still issues with more than 4 million records. Fuzzy grouping is memory and processor intensive so running SSIS on a server separate from the databases is recommended. On a 1.8 GHZ Pentium IV with 512 MB. My tests running an 800,000 record dataset took 5 hours. Adding another 512MB reduced the run time to 2 hours. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;strong&gt;Define A Dataset&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Open Visual Studio and start a BI project then define an OLE DB Source dataset. Any definable dataset may be grouped, but as many temporary tables are created, you must have a connection to a SQL Server and be a user with permission to create tables. Also limiting your dataset to the fields to be used for grouping and a primary key will increase performance. Be wary of data types as many are not supported and datetime fields must be transformed to varchar. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;strong&gt;Add A Fuzzy Grouping Step&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Next add a Fuzzy Grouping package. Define the fields that identify the duplicates. Fields such as First Name, Last Name, Gender, and Date of Birth will prove sufficient to find duplicates. Fields with high discerning power such as Social Security number will improve accuracy and should be given a higher weight. A primary key should also be used as a pass-through in the dataset to aid in future joins of the result set. Define the type of grouping, either exact (data must be equal) or fuzzy (data is compared to determine similarity). The fuzzy grouping allows you to choose further options to ignore cases, punctuation, kana, non-spacing characters, character width or symbols.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_K4VIdFybpsg/SZARduYwZiI/AAAAAAAAACI/bBphjoZzMY4/s1600-h/image002.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 207px;" src="http://1.bp.blogspot.com/_K4VIdFybpsg/SZARduYwZiI/AAAAAAAAACI/bBphjoZzMY4/s320/image002.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5300755963780818466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Minimum Similarities&lt;/strong&gt;&lt;br /&gt;Minimum Similarities should be defined for each field. These thresholds define how closely you want each of the values to correspond. Minimum similarities are between 0 and 1. Where 1 means the values are exact and 0 means review everything. Setting a higher minimum similarity will speed the matching process. Minimum similarities are very dependent on data and the number of matches, and match quality will depend on these values. Setting minimum similarities too high will result in only closer to exact records being found. So you may need some experimentation to determine the best thresholds to use. For example, I like my dates of birth (dob) to be close, but I realize that data entry errors skew dates, so I set a threshold of .20 for dob. In the example below May 12 1972 is compared against May 12 1971 and the similarity score is .84 so it would make the cut. If unsure run some tests with no minimum similarities and review your resulting _similarity fields for each field. Take some averages and review the matches to determine what a good match is, then set your threshold at this level. &lt;p&gt;&lt;br /&gt;&lt;strong&gt;Minimum Thresholds&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;An overall minimum threshold must also be set. I have found that matches with my data get weak after .80. So I set my minimum overall threshold at .80. Again this is dependent on your data, accuracy of entry staff and how closely you want/need your records to match.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_K4VIdFybpsg/SZAR7z8cG2I/AAAAAAAAACQ/qUxeTkGAW8o/s1600-h/image004.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 316px; height: 320px;" src="http://2.bp.blogspot.com/_K4VIdFybpsg/SZAR7z8cG2I/AAAAAAAAACQ/qUxeTkGAW8o/s320/image004.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5300756480668736354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Define the Destination&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The last step sets an OLE DB destination and either creates a new table or uses existing and matches the output fields in the fuzzy grouping step.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_K4VIdFybpsg/SZASnLHPNdI/AAAAAAAAACY/cqIrlvNhAIg/s1600-h/image006.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 275px; height: 320px;" src="http://2.bp.blogspot.com/_K4VIdFybpsg/SZASnLHPNdI/AAAAAAAAACY/cqIrlvNhAIg/s320/image006.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5300757225622418898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The outcome of the grouping will give a _key_in which is the unique key of the first table, a key_out field that identifies the unique groups, the _similarity_fieldname and the _score field that is the average of the _similarity_fieldname. The _score field is between 0 and 1 where a 0 is no similarity and 1 is exact. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Running the following dataset through the grouping:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Here is the sample input data:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_K4VIdFybpsg/SZAS7vR68gI/AAAAAAAAACg/-ujEbORLsVk/s1600-h/image008.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 106px;" src="http://3.bp.blogspot.com/_K4VIdFybpsg/SZAS7vR68gI/AAAAAAAAACg/-ujEbORLsVk/s320/image008.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5300757578928288258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;And here are the output&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;please click the image for larger size&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_K4VIdFybpsg/SZATnSA0HEI/AAAAAAAAACw/aN1SQ4QQqRs/s1600-h/image010.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 53px;" src="http://4.bp.blogspot.com/_K4VIdFybpsg/SZATnSA0HEI/AAAAAAAAACw/aN1SQ4QQqRs/s400/image010.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5300758326986153026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here it grouped the first 3 records together and the last 3 together. Note it did not choose the correct name in grouping one, it simply noted that they are all the same. So if you want the "correct" person, as we did for the hospital, you will need a human to review the results. In our hospital database of over 1.4 million records we found over 5000 duplicates. Unfortunately the nature of the business requires us to review each of the dataset and pull medical records, so an automated merge process is out of the question. But Fuzzy Grouping has proved to be a very valuable tool and has given us many useful reports.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-2675656058077880182?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eOvYs9buNXQIn4Y6g2xd6CcBAmo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eOvYs9buNXQIn4Y6g2xd6CcBAmo/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/eOvYs9buNXQIn4Y6g2xd6CcBAmo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eOvYs9buNXQIn4Y6g2xd6CcBAmo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/2RW_jAs82Fs" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/2RW_jAs82Fs/using-sql-server-integration-services.html</link><author>noreply@blogger.com (Ronsi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_K4VIdFybpsg/SZARduYwZiI/AAAAAAAAACI/bBphjoZzMY4/s72-c/image002.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/02/using-sql-server-integration-services.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-8080946437445198283</guid><pubDate>Thu, 05 Feb 2009 10:25:00 +0000</pubDate><atom:updated>2009-02-05T02:28:36.659-08:00</atom:updated><title>How to Configure SQL Server 2008 ?</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_K4VIdFybpsg/SYq_IDrUQhI/AAAAAAAAAB4/hIAzPAc1JWc/s1600-h/SQLServer2008_Facets.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 171px; height: 320px;" src="http://1.bp.blogspot.com/_K4VIdFybpsg/SYq_IDrUQhI/AAAAAAAAAB4/hIAzPAc1JWc/s320/SQLServer2008_Facets.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5299258056701657618" /&gt;&lt;/a&gt;&lt;br /&gt;Can we configure &lt;strong&gt;SQL Server 2008&lt;/strong&gt; like the way we configure &lt;strong&gt;SQL Server 2005&lt;/strong&gt;?&lt;br /&gt;&lt;br /&gt;Since Surface Area Configuration tool has been removed from &lt;strong&gt;SQL Server 2008&lt;/strong&gt;, there must be tools or menu that we can use for configure our SQL Server.&lt;br /&gt;&lt;br /&gt;After searching in internet, i have found a menu in &lt;strong&gt;Management Studio&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;In Object Explorer right click the Server object, select &lt;strong&gt;Facets&lt;/strong&gt;.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;Now you can configure SQL Server.&lt;br /&gt;&lt;br /&gt;You can find all Configuration option in Facet Combo.&lt;br /&gt;&lt;br /&gt;Let’s configure…. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-8080946437445198283?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5w-jIYgSbg8rB4br1RawsYmWuhQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5w-jIYgSbg8rB4br1RawsYmWuhQ/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/5w-jIYgSbg8rB4br1RawsYmWuhQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5w-jIYgSbg8rB4br1RawsYmWuhQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/LiNW7_BLabA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/LiNW7_BLabA/how-to-configure-sql-server-2008.html</link><author>noreply@blogger.com (Ronsi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_K4VIdFybpsg/SYq_IDrUQhI/AAAAAAAAAB4/hIAzPAc1JWc/s72-c/SQLServer2008_Facets.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/02/how-to-configure-sql-server-2008.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-3255276683675869916</guid><pubDate>Thu, 05 Feb 2009 06:55:00 +0000</pubDate><atom:updated>2009-02-04T22:55:08.733-08:00</atom:updated><title>Testing BlogJet</title><description>&lt;p&gt;I have installed an interesting application - &lt;a href="http://blogjet.com/"&gt;BlogJet&lt;/a&gt;. It's a cool Windows client for my blog tool (as well as for other tools). Get your copy here: &lt;a href="http://blogjet.com/"&gt;http://blogjet.com&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;"Computers are incredibly fast, accurate and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination." -- Albert Einstein&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-3255276683675869916?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZEkfXfypy30PNzlY-fbeF8IijfA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZEkfXfypy30PNzlY-fbeF8IijfA/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/ZEkfXfypy30PNzlY-fbeF8IijfA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZEkfXfypy30PNzlY-fbeF8IijfA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/f5zfKuRfi28" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/f5zfKuRfi28/testing-blogjet.html</link><author>noreply@blogger.com (Ronsi)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/02/testing-blogjet.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-1818035806205805328</guid><pubDate>Fri, 30 Jan 2009 06:43:00 +0000</pubDate><atom:updated>2009-01-29T23:10:27.119-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">VB 2005</category><title>VB 2005 Google Maps - Where Am I</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_K4VIdFybpsg/SYKl5enxnAI/AAAAAAAAABw/RfIToQqqoKQ/s1600-h/Gmaps.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 103px;" src="http://3.bp.blogspot.com/_K4VIdFybpsg/SYKl5enxnAI/AAAAAAAAABw/RfIToQqqoKQ/s320/Gmaps.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5296978518632143874" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Where am I ???  :)&lt;/p&gt;&lt;p&gt;Let's create an apps for display our city or address in a google maps.&lt;/p&gt;&lt;p&gt;This apps will launch a browser and show the maps of the inputted city or an address.&lt;/p&gt;&lt;p&gt;We need...&lt;/p&gt;&lt;p&gt;a Form&lt;/p&gt;&lt;p&gt;a button, it will launch the browser if clicked &lt;/p&gt;&lt;p&gt;a combo, for google map mode&lt;/p&gt;&lt;p&gt;a textbox, for input City or address&lt;/p&gt;&lt;p&gt;here is the code&lt;/p&gt;&lt;p&gt;First on  form load, we will fill google maps mode to the combo (Map, Satellite, Terrain) and set the default to Map&lt;/p&gt;&lt;p&gt;&lt;span style="color:#3366ff;"&gt;&lt;span style="font-size:85%;"&gt;Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;        cboGoogle.Items.Add("Map")&lt;br /&gt;        cboGoogle.Items.Add("Satellite")&lt;br /&gt;        cboGoogle.Items.Add("Terrain")&lt;br /&gt;        cboGoogle.Text = "Map"&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color:#333333;"&gt;&lt;span style="font-size:100%;"&gt;And when the button clicked&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#3366ff;"&gt;&lt;span style="font-size:85%;"&gt;Private Sub btnGoogle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGoogle.Click&lt;br /&gt;        ' The basic map URL without the address information.&lt;br /&gt;        Const URL_BASE As String = "http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;time=&amp;amp;date=&amp;amp;ttype=&amp;amp;q=@ADDR@&amp;amp;ie=UTF8&amp;amp;t=@TYPE@"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        ' URL encode the street address.&lt;br /&gt;        Dim addr As String = txtAddress.Text&lt;br /&gt;        addr = HttpUtility.UrlEncode(txtAddress.Text, System.Text.Encoding.UTF8)&lt;br /&gt;&lt;br /&gt;        ' Insert the encoded address into the base URL.&lt;br /&gt;        Dim url As String = URL_BASE.Replace("@ADDR@", addr)&lt;br /&gt;&lt;br /&gt;        ' Insert the proper type.&lt;br /&gt;        Select Case cboGoogle.Text&lt;br /&gt;            Case "Map"&lt;br /&gt;                url = url.Replace("@TYPE@", "m")&lt;br /&gt;            Case "Satellite"&lt;br /&gt;                url = url.Replace("@TYPE@", "h")&lt;br /&gt;            Case "Terrain"&lt;br /&gt;                url = url.Replace("@TYPE@", "p")&lt;br /&gt;        End Select&lt;br /&gt;&lt;br /&gt;        ' "Execute" the URL to make the default browser display it.&lt;br /&gt;        Process.Start(url)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color:#3366ff;"&gt;oo.. almost forgot.., &lt;/span&gt;&lt;span style="color:#3366ff;"&gt;we use &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#3366ff;"&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;HttpUtility&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color:#3366ff;"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;span style="color:#3366ff;"&gt;for encode the URL,&lt;/span&gt;&lt;span style="color:#3366ff;"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;span style="color:#3366ff;"&gt;so we need to add reference, &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#3366ff;"&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;System.Web&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color:#3366ff;"&gt; and imports &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#3366ff;"&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;System.Web&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#3366ff;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-1818035806205805328?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nzzR76qwCbHJcNEv13Vtal-3K_4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nzzR76qwCbHJcNEv13Vtal-3K_4/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/nzzR76qwCbHJcNEv13Vtal-3K_4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nzzR76qwCbHJcNEv13Vtal-3K_4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/7xBMVAASVLc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/7xBMVAASVLc/vb-2005-google-maps-where-am-i.html</link><author>noreply@blogger.com (Ronsi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_K4VIdFybpsg/SYKl5enxnAI/AAAAAAAAABw/RfIToQqqoKQ/s72-c/Gmaps.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/01/vb-2005-google-maps-where-am-i.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-6844665696553085456</guid><pubDate>Fri, 30 Jan 2009 04:16:00 +0000</pubDate><atom:updated>2009-01-29T21:53:18.206-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">VB NET</category><title>A Simple VB Bouncing Ball</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_K4VIdFybpsg/SYKVvPqzvSI/AAAAAAAAABo/tIvcMyZH_rQ/s1600-h/Bounce.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 305px; height: 304px;" src="http://4.bp.blogspot.com/_K4VIdFybpsg/SYKVvPqzvSI/AAAAAAAAABo/tIvcMyZH_rQ/s320/Bounce.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5296960750633598242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Here is a simple code that will display a bouncing ball in a form.&lt;/p&gt;&lt;p&gt;We only need a form and a timer control.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:78%;"&gt;Variable for paint the Ball&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;    &lt;span style="font-size:85%;"&gt;&lt;span style="color:#3366ff;"&gt;Private Const BALL_WID As Integer = 50&lt;br /&gt;    Private Const BALL_HGT As Integer = 50&lt;br /&gt;    Private m_Dx As Integer&lt;br /&gt;    Private m_Dy As Integer&lt;br /&gt;    Private m_X As Integer&lt;br /&gt;    Private m_Y As Integer&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:78%;"&gt;Init and set DoubleBuffer = TRUE for reduce  flicker&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#3333ff;"&gt;Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;        Dim rnd As New Random&lt;br /&gt;        m_Dx = rnd.Next(1, 4)&lt;br /&gt;        m_Dy = rnd.Next(1, 4)&lt;br /&gt;        m_X = rnd.Next(0, Me.ClientSize.Width - BALL_WID)&lt;br /&gt;        m_Y = rnd.Next(0, Me.ClientSize.Height - BALL_HGT)&lt;br /&gt;        Me.tmrMoveBall.Enabled = True&lt;br /&gt;        Me.SetStyle( _&lt;br /&gt;            ControlStyles.AllPaintingInWmPaint Or _&lt;br /&gt;            ControlStyles.UserPaint Or _&lt;br /&gt;            ControlStyles.DoubleBuffer, _&lt;br /&gt;            True)&lt;br /&gt;        Me.UpdateStyles()&lt;br /&gt;    End Sub&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;&lt;strong&gt;&lt;span style="font-size:78%;"&gt;Paint the Ball !!!!&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#3333ff;"&gt;Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint&lt;br /&gt;        e.Graphics.Clear(Me.BackColor)&lt;br /&gt;        e.Graphics.FillEllipse(Brushes.Blue, m_X, m_Y, BALL_WID, BALL_HGT)&lt;br /&gt;        e.Graphics.DrawEllipse(Pens.Black, m_X, m_Y, BALL_WID, BALL_HGT)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Move it !! and Bounce !!!&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#3366ff;"&gt;Private Sub tmrMoveBall_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrMoveBall.Tick&lt;br /&gt;        m_X += m_Dx&lt;br /&gt;        If m_X &lt; m_dx =" -m_Dx"&gt; Me.ClientSize.Width Then&lt;br /&gt;            m_Dx = -m_Dx&lt;br /&gt;            Beep()&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;        m_Y += m_Dy&lt;br /&gt;        If m_Y &lt; m_dy =" -m_Dy"&gt; Me.ClientSize.Height Then&lt;br /&gt;            m_Dy = -m_Dy&lt;br /&gt;            Beep()&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;        Me.Invalidate()&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-6844665696553085456?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/c2iXQhz5DcfhS8kaQDwpfIkhIfg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/c2iXQhz5DcfhS8kaQDwpfIkhIfg/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/c2iXQhz5DcfhS8kaQDwpfIkhIfg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/c2iXQhz5DcfhS8kaQDwpfIkhIfg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/zFPLgkk0apc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/zFPLgkk0apc/simple-vb-bouncing-ball.html</link><author>noreply@blogger.com (Ronsi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_K4VIdFybpsg/SYKVvPqzvSI/AAAAAAAAABo/tIvcMyZH_rQ/s72-c/Bounce.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/01/simple-vb-bouncing-ball.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-1443556993724754721</guid><pubDate>Thu, 29 Jan 2009 10:27:00 +0000</pubDate><atom:updated>2009-01-29T02:31:51.939-08:00</atom:updated><title>Alvin and the Chipmunks: The Squeakuel (2009)</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_K4VIdFybpsg/SYGFjWBjeoI/AAAAAAAAABg/46k0wQvcdEU/s1600-h/Alvin_and_the_Chipmunks2007.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 294px;" src="http://4.bp.blogspot.com/_K4VIdFybpsg/SYGFjWBjeoI/AAAAAAAAABg/46k0wQvcdEU/s320/Alvin_and_the_Chipmunks2007.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5296661479018429058" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Funny !!&lt;/p&gt;&lt;p&gt;Cute !!&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.zshare.net/video/53993284026b418a/"&gt;Chapter1&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.zshare.net/video/53993314ee8469f0/"&gt;Chapter2&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-1443556993724754721?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1GiJr-DTKnjUIEsQsufYNjCtzv8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1GiJr-DTKnjUIEsQsufYNjCtzv8/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/1GiJr-DTKnjUIEsQsufYNjCtzv8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1GiJr-DTKnjUIEsQsufYNjCtzv8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/bC9vUbz__KY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/bC9vUbz__KY/alvin-and-chipmunks-squeakuel-2009.html</link><author>noreply@blogger.com (Ronsi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_K4VIdFybpsg/SYGFjWBjeoI/AAAAAAAAABg/46k0wQvcdEU/s72-c/Alvin_and_the_Chipmunks2007.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/01/alvin-and-chipmunks-squeakuel-2009.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-8069121985520326989</guid><pubDate>Thu, 29 Jan 2009 10:21:00 +0000</pubDate><atom:updated>2009-01-29T02:24:27.309-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">movies</category><title>Bride Wars (2009)</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_K4VIdFybpsg/SYGDjADQ_II/AAAAAAAAABY/mGyfdc4NpCQ/s1600-h/BrideWars.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 220px; height: 320px;" src="http://4.bp.blogspot.com/_K4VIdFybpsg/SYGDjADQ_II/AAAAAAAAABY/mGyfdc4NpCQ/s320/BrideWars.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5296659274096770178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Two best friends become rivals when they schedule their respective weddings on the same day.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Links&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.zshare.net/video/548100896ed87bb3/"&gt;1&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.zshare.net/video/5481010692ddacef/"&gt;2&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-8069121985520326989?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mN2vc5GUW7iJWo3vvZMd6SD-voY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mN2vc5GUW7iJWo3vvZMd6SD-voY/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/mN2vc5GUW7iJWo3vvZMd6SD-voY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mN2vc5GUW7iJWo3vvZMd6SD-voY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/6jWE3lSrW-4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/6jWE3lSrW-4/bride-wars-2009.html</link><author>noreply@blogger.com (Ronsi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_K4VIdFybpsg/SYGDjADQ_II/AAAAAAAAABY/mGyfdc4NpCQ/s72-c/BrideWars.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/01/bride-wars-2009.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-2509691650472091362</guid><pubDate>Thu, 29 Jan 2009 10:04:00 +0000</pubDate><atom:updated>2009-01-29T02:06:38.541-08:00</atom:updated><title>Underworld: Rise of the Lycans (2009)</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_K4VIdFybpsg/SYF_ZHgQLnI/AAAAAAAAABQ/68gW-ewLaWQ/s1600-h/Underworld3.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 215px; height: 320px;" src="http://4.bp.blogspot.com/_K4VIdFybpsg/SYF_ZHgQLnI/AAAAAAAAABQ/68gW-ewLaWQ/s320/Underworld3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5296654706252197490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;An origins story centered on the centuries-old feud between the race of aristocratic vampires and their onetime slaves, the Lycans.&lt;/p&gt;&lt;p&gt;Download &lt;br /&gt;&lt;a href="http://www.zshare.net/video/54603425f37f6ae1/"&gt;part 1&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.zshare.net/video/54603573e709b673/"&gt;part 2&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-2509691650472091362?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MrPvDIfnmz94nGVyoM8YAUg-EDk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MrPvDIfnmz94nGVyoM8YAUg-EDk/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/MrPvDIfnmz94nGVyoM8YAUg-EDk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MrPvDIfnmz94nGVyoM8YAUg-EDk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/NGROxOc1OJM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/NGROxOc1OJM/underworld-rise-of-lycans-2009.html</link><author>noreply@blogger.com (Ronsi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_K4VIdFybpsg/SYF_ZHgQLnI/AAAAAAAAABQ/68gW-ewLaWQ/s72-c/Underworld3.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/01/underworld-rise-of-lycans-2009.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-1490452657765701944</guid><pubDate>Thu, 29 Jan 2009 09:59:00 +0000</pubDate><atom:updated>2009-01-29T02:03:57.257-08:00</atom:updated><title>Afro Samurai: Resurrection (2009)</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_K4VIdFybpsg/SYF-vE_h-pI/AAAAAAAAABI/HODsNtpeAGY/s1600-h/AfroSamurai_Resurrection.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 227px; height: 320px;" src="http://1.bp.blogspot.com/_K4VIdFybpsg/SYF-vE_h-pI/AAAAAAAAABI/HODsNtpeAGY/s320/AfroSamurai_Resurrection.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5296653984023575186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;When his father’s body is stolen from its grave, Afro takes up his sword again to tear through an army of deadly foes led by a sadistic leader.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Download &lt;a href="http://www.supernovatube.com/view_video.php?viewkey=f2f9e48a82bdb1d24b70"&gt;Here&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-1490452657765701944?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SlnFl_dF4D5aj5Eln9yWAD2fKTs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SlnFl_dF4D5aj5Eln9yWAD2fKTs/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/SlnFl_dF4D5aj5Eln9yWAD2fKTs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SlnFl_dF4D5aj5Eln9yWAD2fKTs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/_GE6Pmn-U54" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/_GE6Pmn-U54/afro-samurai-resurrection-2009.html</link><author>noreply@blogger.com (Ronsi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_K4VIdFybpsg/SYF-vE_h-pI/AAAAAAAAABI/HODsNtpeAGY/s72-c/AfroSamurai_Resurrection.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/01/afro-samurai-resurrection-2009.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2184087567287643951.post-6332434780081698198</guid><pubDate>Wed, 07 Jan 2009 08:24:00 +0000</pubDate><atom:updated>2009-01-07T01:40:53.699-08:00</atom:updated><title>SQLServer-TSQL : List in Where Clause</title><description>&lt;p&gt;Sometimes we need to SELECT specific records based on a given list of criteria.&lt;/p&gt;&lt;p&gt;We can do this by creating a Dynamic Query, which mean we have to build the Query  by concatenating the list item to become a WHERE clause, and execute by using exec.&lt;/p&gt;&lt;p&gt;Let's create a table and insert some records.&lt;/p&gt;&lt;p&gt;CREATE TABLE Contact(&lt;br /&gt; id int ,&lt;br /&gt; firstname varchar(50),&lt;br /&gt; lastname varchar(50),&lt;br /&gt; Age int&lt;br /&gt;) ON [PRIMARY]&lt;br /&gt;&lt;br /&gt;insert Contact (id,firstname,lastname,Age) values (1,'Michael','George',25)&lt;br /&gt;insert Contact (id,firstname,lastname,Age) values (2,'Jhon','Jack',30)&lt;br /&gt;insert Contact (id,firstname,lastname,Age) values (3,'Daniel','Warren',18)&lt;br /&gt;insert Contact (id,firstname,lastname,Age) values (4,'Jim','Steve',26)&lt;br /&gt;insert Contact (id,firstname,lastname,Age) values (5,'Smith','James',31)&lt;br /&gt;insert Contact (id,firstname,lastname,Age) values (5,'Smith','James',31)&lt;br /&gt;&lt;br /&gt;--This SP would be return all contact that  first character of the firstname is in the list&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Create Procedure uspGetContact(@FirstChar varchar(100))&lt;br /&gt;as&lt;br /&gt;Begin&lt;br /&gt;  declare @Query as varchar(100)&lt;br /&gt;  SET @Query = 'SELECT * from contact  WHERE LEFT(FirstName,1) IN ' + '(' + @FirstChar  + ')' -- build query &lt;br /&gt;  exec (@Query) -- execute&lt;br /&gt;End&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Using dynamic query could hurt the application performance. &lt;/p&gt;&lt;p&gt;We could use a UDf that return a table for this case, so we don't have to use dynamic query.&lt;/p&gt;&lt;p&gt;CREATE FUNCTION [dbo].[udfCSVToTable] ( @FirstChar VARCHAR(100) )&lt;br /&gt;RETURNS @OutputTable TABLE ( FirstNameChar varchar(1) )&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;    DECLARE @String    VARCHAR(10)&lt;br /&gt;&lt;br /&gt;    WHILE LEN(@FirstChar) &gt; 0&lt;br /&gt;    BEGIN&lt;br /&gt;        SET @String      = LEFT(@FirstChar, &lt;br /&gt;                                ISNULL(NULLIF(CHARINDEX(',', @FirstChar) - 1, -1),&lt;br /&gt;                                LEN(@FirstChar)))&lt;br /&gt;        SET @FirstChar = SUBSTRING(@FirstChar,&lt;br /&gt;                                     ISNULL(NULLIF(CHARINDEX(',', @FirstChar), 0),&lt;br /&gt;                                     LEN(@FirstChar)) + 1, LEN(@FirstChar))&lt;br /&gt;&lt;br /&gt;        INSERT INTO @OutputTable ( FirstNameChar )&lt;br /&gt;        VALUES ( @String )&lt;br /&gt;    END&lt;br /&gt;    &lt;br /&gt;    RETURN&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Then, to select for specific contact that first character of the firstname is in the list, we can use this simple query &lt;/p&gt;&lt;p&gt;SELECT * FROM contact  WHERE LEFT(FirstName,1) IN (Select FirstNameChar from udfCSVToTable('S,J'))&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2184087567287643951-6332434780081698198?l=ronsi-simple-thing.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/f4yVBvjuJS1TJVael4R_doBZfww/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f4yVBvjuJS1TJVael4R_doBZfww/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/f4yVBvjuJS1TJVael4R_doBZfww/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f4yVBvjuJS1TJVael4R_doBZfww/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/TgKn/~4/bEl-TQAJHR4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/blogspot/TgKn/~3/bEl-TQAJHR4/sqlserver-tsql-list-in-where-clause.html</link><author>noreply@blogger.com (Ronsi)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://ronsi-simple-thing.blogspot.com/2009/01/sqlserver-tsql-list-in-where-clause.html</feedburner:origLink></item></channel></rss>
