<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-16155384</id><updated>2011-11-27T23:33:26.855-02:00</updated><category term='visual studio'/><category term='ESL'/><category term='batch file'/><category term='SQL Server'/><title type='text'>roudrigo</title><subtitle type='html'>Software development discussions</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://roudrigo.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://roudrigo.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rodrigo Nascentes</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/4218/1523/320/roudrigo3.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-16155384.post-5679892048208136661</id><published>2010-06-24T13:46:00.001-03:00</published><updated>2010-06-24T13:46:49.010-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ESL'/><title type='text'>ESL - Closing email phrases</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;I look forward to your reply. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I look forward to seeing you. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I look forward to hearing from you. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I look forward to hearing from you soon. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I look forward to meeting you next Tuesday. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I look forward to seeing you next Thursday. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;We look forward to welcoming you as our customer. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I look forward to an opportunity to speak with you personally. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I look forward to a successful working relationship in the future. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I hope to get answers from you. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Good luck and I look forward to your response! &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;If you require any further information, feel free to contact me. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;If you have any questions, please don't hesitate to contact us. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Should you need any further information, please do not hesitate to contact me. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I would appreciate your immediate attention to this matter. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Your prompt reply is very much appreciated. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Please contact us again if we can help in any way. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Please contact us again if there are any problems. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Please contact us again if you have any questions.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;If you have any questions or concerns, please feel free to contact me. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;If you have any question please contact us anytime and we will get back to you within 3 business days.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Let me know at your earliest convenience.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Please cascade this information as necessary.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Thank you buddy for considering...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16155384-5679892048208136661?l=roudrigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roudrigo.blogspot.com/feeds/5679892048208136661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://roudrigo.blogspot.com/2010/06/esl-closing-email-phrases.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/5679892048208136661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/5679892048208136661'/><link rel='alternate' type='text/html' href='http://roudrigo.blogspot.com/2010/06/esl-closing-email-phrases.html' title='ESL - Closing email phrases'/><author><name>Rodrigo Nascentes</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/4218/1523/320/roudrigo3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16155384.post-6005601951973512125</id><published>2010-06-24T13:45:00.001-03:00</published><updated>2010-06-24T13:45:57.483-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ESL'/><title type='text'>ESL - Opening email phrases</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;I am writing to confirm ... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I am writing to apologize for ... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I am writing to enquire about ... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I am writing to you in response to your advertisement for... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I received your address from + and would like ... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I recently wrote to you about ... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;In reply to your letter of 8 May, ... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;With reference to your letter of 8 June, I ... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;With reference to your advertisement in ... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;With reference to your phone call today, ... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;After having seen your advertisement in ... , I would like ... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;After having received your address from ... , I ... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Thank you for your letter of 8 May. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Thank you for your letter regarding ... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Thank you for your letter/e-mail about ... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;To Whom It May Concern: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;An update on this issue&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;More progress on this issue &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16155384-6005601951973512125?l=roudrigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roudrigo.blogspot.com/feeds/6005601951973512125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://roudrigo.blogspot.com/2010/06/esl-opening-email-phrases.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/6005601951973512125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/6005601951973512125'/><link rel='alternate' type='text/html' href='http://roudrigo.blogspot.com/2010/06/esl-opening-email-phrases.html' title='ESL - Opening email phrases'/><author><name>Rodrigo Nascentes</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/4218/1523/320/roudrigo3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16155384.post-5356654183580215178</id><published>2010-06-08T15:03:00.002-03:00</published><updated>2010-06-08T15:15:56.934-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch file'/><title type='text'>Batch File - Converting a unix file to windows file</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;TYPE unix_file.txt | FIND "" /V &gt; windows_file.txt&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;FOR /f "eol= tokens=* delims=" %%i in (unix_file.txt) do echo %%i &gt;&gt;windows_file.txt&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16155384-5356654183580215178?l=roudrigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roudrigo.blogspot.com/feeds/5356654183580215178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://roudrigo.blogspot.com/2010/06/batch-file-converting-unix-file-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/5356654183580215178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/5356654183580215178'/><link rel='alternate' type='text/html' href='http://roudrigo.blogspot.com/2010/06/batch-file-converting-unix-file-to.html' title='Batch File - Converting a unix file to windows file'/><author><name>Rodrigo Nascentes</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/4218/1523/320/roudrigo3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16155384.post-8862933697309584808</id><published>2010-06-02T11:10:00.004-03:00</published><updated>2010-09-06T11:04:29.122-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch file'/><title type='text'>Batch File - Comparing dates of two files</title><content type='html'>&lt;pre class="alt2 codeblock"  style="min-height: 35px;font-family:trebuchet ms;" dir="ltr"&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;dir /b /OD file1.txt file2.txt | more +1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This only works if the files are in the same folder, and neither is hidden.&lt;br /&gt;(Limitation of the Dir command)Compares Last Modified Date, but can easily&lt;br /&gt;compare Created Date or Last Accessed Date using /TC or /TA.&lt;br /&gt;To capture the filename in a batch file you can use a For loop:&lt;br /&gt;Code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;For /F "Delims=" %%I In ('dir /b /OD file1.txt file2.txt ^| more +1') Do Set _Newer=%%I&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can use the /AH switch if both files are hidden, but it won't work if only&lt;br /&gt;one is hidden. This will also do the same:&lt;br /&gt;Code:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255); font-style: italic;"&gt;For /F "Skip=1 Delims=" %%I In ('dir /b /OD file1.txt file2.txt') Do Set _Newer=%%I&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can use Xcopy if the files are in the same or different folders, hidden or not,&lt;br /&gt;but can only compare the Last Modified dates:&lt;br /&gt;Code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;For /F "Delims=" %%I In ('xcopy /DHYL C:\Folder1\File1.txt D:\Backup\File2.txt ^|Findstr /I "File"') Do set /a _Newer=%%I 2&gt;Nul&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If File1 is newer, _Newer is set to 1. If same or older date, it's set to 0.&lt;br /&gt;If you need the file name instead of a 1/0 answer, takes one more line:&lt;br /&gt;Code:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255); font-style: italic;"&gt;For /F "Delims=" %%I In ('xcopy /DHYL C:\Folder1\File1.txt D:\Backup\File2.txt ^|Findstr /I "File"') Do set /a _Newer=%%I 2&gt;Nul&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255); font-style: italic;"&gt;If %_Newer==1 (Set _Newer=C:\Folder1\File1.txt) Else (Set _Newer=D:\Backup\File2.txt)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will accept Fully qualified file names on the command line and output the&lt;br /&gt;name of the newest file:&lt;br /&gt;Code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;Set _File1=%1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;Set _File2=%2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;For /F "Delims=" %%I In ('xcopy /DHYL %_File1% %_File2% ^|Findstr /I "File"') Do set /a _Newer=%%I 2&gt;Nul&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;If %_Newer%==1 (Set _Newer=%_File1%) Else (Set _Newer=%_File2%)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;Echo The newest file is %_Newer%&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you need to compare the Created Date or Last Accessed Date for files in&lt;br /&gt;different folders, you can move one of them, compare using the first option,&lt;br /&gt;then move the file back. Not a good option for larger files, or files on a flash&lt;br /&gt;drive. You'd have to parse the Date and time stamp from a Dir for each file,&lt;br /&gt;convert it to a number format that batch can handle, and then compare&lt;br /&gt;the timestamps. Doable, but much more involved using a batch file.&lt;br /&gt;The GNU utilities would be much easier if you need to compare Created/Accessed&lt;br /&gt;dates in different folders without moving either file. And it can do multiple&lt;br /&gt;files, not just two&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16155384-8862933697309584808?l=roudrigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roudrigo.blogspot.com/feeds/8862933697309584808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://roudrigo.blogspot.com/2010/06/batch-file-comparing-dates-of-two-files.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/8862933697309584808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/8862933697309584808'/><link rel='alternate' type='text/html' href='http://roudrigo.blogspot.com/2010/06/batch-file-comparing-dates-of-two-files.html' title='Batch File - Comparing dates of two files'/><author><name>Rodrigo Nascentes</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/4218/1523/320/roudrigo3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16155384.post-4778892804307451969</id><published>2010-06-02T10:26:00.005-03:00</published><updated>2010-06-02T11:16:08.774-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch file'/><title type='text'>Batch File - Reading a flat file</title><content type='html'>TEST.TXT:&lt;br /&gt;indiana, brazil, 49&lt;br /&gt;john, africa, 50&lt;br /&gt;nicole, argentina, 13&lt;br /&gt;&lt;br /&gt;----------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;FOR /f "delims=, tokens=1,2,3*" %%i in (C:\test.txt) DO call :read_file %%i %%j %%k&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;goto :END&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;:read_file&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;SET name=%1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;SET country=%2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;SET age=%3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;ECHO %name%&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;ECHO %country%&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;ECHO %age%&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;goto :eof&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;:END&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;echo Execution Success!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;exit 0&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16155384-4778892804307451969?l=roudrigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roudrigo.blogspot.com/feeds/4778892804307451969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://roudrigo.blogspot.com/2010/06/batch-file-reading-flat-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/4778892804307451969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/4778892804307451969'/><link rel='alternate' type='text/html' href='http://roudrigo.blogspot.com/2010/06/batch-file-reading-flat-file.html' title='Batch File - Reading a flat file'/><author><name>Rodrigo Nascentes</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/4218/1523/320/roudrigo3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16155384.post-4801258382273173112</id><published>2010-06-02T10:06:00.005-03:00</published><updated>2010-06-02T11:16:27.114-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch file'/><title type='text'>Batch File - Creating a log file with date/time</title><content type='html'>&lt;span style="font-style: italic; color: rgb(51, 102, 255);font-family:trebuchet ms;" &gt;FOR /F "tokens=2,3,4 delims=/ " %%I in ('DATE /T') DO SET LOGDATE=%%K%%I%%J&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);font-family:trebuchet ms;" &gt;FOR /F "tokens=1,2 delims=: " %%I in ('TIME /T') DO SET TIMEVAR=%%I%%J&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);font-family:trebuchet ms;" &gt;SET LOGFILE=D:\LOGS\logfile_%LOGDATE%_%TIMEVAR%.log&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16155384-4801258382273173112?l=roudrigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roudrigo.blogspot.com/feeds/4801258382273173112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://roudrigo.blogspot.com/2010/06/batch-file-creating-log-file-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/4801258382273173112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/4801258382273173112'/><link rel='alternate' type='text/html' href='http://roudrigo.blogspot.com/2010/06/batch-file-creating-log-file-with.html' title='Batch File - Creating a log file with date/time'/><author><name>Rodrigo Nascentes</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/4218/1523/320/roudrigo3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16155384.post-3715475931631837422</id><published>2010-05-26T08:43:00.007-03:00</published><updated>2010-06-24T13:57:07.419-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ESL'/><title type='text'>ESL - Connectors</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;ADDITION:&lt;/span&gt;&lt;br /&gt;and = e;&lt;br /&gt;in addition = alem disso;&lt;br /&gt;furthermore = alem disso;&lt;br /&gt;besides = alem disso;&lt;br /&gt;moreover = alem disso;&lt;br /&gt;as well as = tambem, assim como, bem como;&lt;br /&gt;also = tambem;&lt;br /&gt;apart from = com exceção de;&lt;br /&gt;both... and = ambos, tanto... como;&lt;br /&gt;not only... but also = nao apenas... mas tb;&lt;br /&gt;also.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CONTRAST, CONCESSION:&lt;/span&gt;&lt;br /&gt;but = mas;&lt;br /&gt;however = entretanto;&lt;br /&gt;nevertheless = não obstante;&lt;br /&gt;yet = entretanto, ainda;&lt;br /&gt;nonetheless = não obstante;&lt;br /&gt;despite that = apesar de;&lt;br /&gt;in spite of = apesar de;&lt;br /&gt;although = embora;&lt;br /&gt;even thought = embora;&lt;br /&gt;thought = embora;&lt;br /&gt;raster than = em vez de;&lt;br /&gt;instead of = em vez de;&lt;br /&gt;Whereas, meanwhile = enquanto;&lt;br /&gt;On the other hand.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PURPOSE:&lt;/span&gt;&lt;br /&gt;in order to = a fim de;&lt;br /&gt;so as so = de modo que.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CONSEQUENCE, CONCLUSION:&lt;/span&gt;&lt;br /&gt;therefore = portanto;&lt;br /&gt;consequently = consequentemente;&lt;br /&gt;accordingly = de acordo;&lt;br /&gt;fence = pois, entao, dai;&lt;br /&gt;as a result = consequentemente;&lt;br /&gt;thus = assim;&lt;br /&gt;thereby = assim, desse modo;&lt;br /&gt;so = entao, pois;&lt;br /&gt;then = entao;&lt;br /&gt;finally = finalmente&lt;br /&gt;Otherwise= de resto;&lt;br /&gt;In summary;&lt;br /&gt;To sum up&lt;br /&gt;To conclude;&lt;br /&gt;In conclusion.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ALTERNATIVE:&lt;/span&gt;&lt;br /&gt;otherwise = por outro lado;&lt;br /&gt;or = ou;&lt;br /&gt;or else = ou entao, ou ainda;&lt;br /&gt;either... or = ou... ou;&lt;br /&gt;whereas = enquanto;&lt;br /&gt;while = enquanto;&lt;br /&gt;whilst= enquanto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CAUSE / REASON:&lt;/span&gt;&lt;br /&gt;because = porque;&lt;br /&gt;due to = devido a;&lt;br /&gt;as = porque;&lt;br /&gt;since = uma vez que;&lt;br /&gt;In order to;&lt;br /&gt;So as not to;&lt;br /&gt;So that.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DOUBT OR HYPOTHESIS:&lt;/span&gt;&lt;br /&gt;perhaps = talvez;&lt;br /&gt;maybe = talvez;&lt;br /&gt;possibly = possivelmente.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;EMPHASIS:&lt;/span&gt;&lt;br /&gt;that is = isto é;&lt;br /&gt;in other words = em outras palavras;&lt;br /&gt;in short = em resumo;&lt;br /&gt;in brief = em resumo;&lt;br /&gt;that is to say = quer dizer;&lt;br /&gt;i. e. = isto é.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;COMPARISON:&lt;/span&gt;&lt;br /&gt;like = como;&lt;br /&gt;than = do que;&lt;br /&gt;as = como;&lt;br /&gt;Likewise;&lt;br /&gt;Similarly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ILLUSTRATION:&lt;/span&gt;&lt;br /&gt;e.g. = por exemplo;&lt;br /&gt;for instance = por exemplo;&lt;br /&gt;for example = por exemplo;&lt;br /&gt;such as = tal como;&lt;br /&gt;namely = a saber;&lt;br /&gt;viz = quer dizer.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CONDITION:&lt;/span&gt;&lt;br /&gt;if = se;&lt;br /&gt;unless = se nao, a menos que;&lt;br /&gt;provided that = uma vez que, se;&lt;br /&gt;on condition that = desde que;&lt;br /&gt;as long as = uma vez que;&lt;br /&gt;subject to = sujeito a;&lt;br /&gt;whether = e;&lt;br /&gt;as = enquanto;&lt;br /&gt;as = quando;&lt;br /&gt;Otherwise.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16155384-3715475931631837422?l=roudrigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roudrigo.blogspot.com/feeds/3715475931631837422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://roudrigo.blogspot.com/2010/05/esl-connectors.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/3715475931631837422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/3715475931631837422'/><link rel='alternate' type='text/html' href='http://roudrigo.blogspot.com/2010/05/esl-connectors.html' title='ESL - Connectors'/><author><name>Rodrigo Nascentes</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/4218/1523/320/roudrigo3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16155384.post-3461743276495555515</id><published>2009-08-13T18:09:00.010-03:00</published><updated>2009-08-14T08:58:39.676-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Cross, Inner and Outer Join</title><content type='html'>For you and me that always forget the differences between the ANSI and traditional join syntax,  I wrote this quick guide. Let’s take a look.&lt;br /&gt;&lt;br /&gt;The fundamental join types differ in the logical phases that they apply:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Cross join applies only the Cartesian product,&lt;/li&gt;&lt;li&gt;Inner join applies the Cartesian product and the ON filter,&lt;/li&gt;&lt;li&gt;Outer join applies Cartesian product, ON filter and add outer rows.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:130%;"  &gt;Cross Join&lt;/span&gt;&lt;br /&gt;Performs a Cartesian product between two tables. In other words, it returns a row for each possible combination of a row from the left table and a row from the right table. If the left table has n rows and the right table has m rows, a cross join will return a table with n x m rows.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;ANSI&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;Traditiona&lt;/span&gt;l&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-style: italic;"&gt;SELECT E1.FirstName, E1.LastName AS emp1,E2.FirstName, E2.LastName AS emp2&lt;br /&gt;FROM dbo.Employees AS E1&lt;br /&gt;CROSS JOIN dbo.Employees AS E2;&lt;/td&gt;&lt;td style="font-style: italic;"&gt;SELECT E1.FirstName, E1.LastName AS emp1,E2.FirstName, E2.LastName AS emp2&lt;br /&gt;FROM dbo.Employees AS E1, dbo.Employees AS E2;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;The optimizer will produce the same plan for both, so you shouldn't have any concerns about performance.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Inner Join&lt;/span&gt;&lt;br /&gt;Applies the first and the second table (Cartesian product, ON filter)&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;ANSI&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Traditional&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-style: italic;"&gt;SELECT C.CustomerID, CompanyName, OrderID&lt;br /&gt;FROM dbo.Customers AS C&lt;br /&gt;JOIN dbo.Orders AS O ON C.CustomerID = O.CustomerID&lt;br /&gt;WHERE Country = 'USA';&lt;/td&gt;&lt;td style="font-style: italic;"&gt;SELECT C.CustomerID, CompanyName, OrderID&lt;br /&gt;FROM dbo.Customers AS C, dbo.Orders AS O&lt;br /&gt;WHERE C.CustomerID = O.CustomerID&lt;br /&gt;AND Country = 'USA';&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Outer Join&lt;/span&gt;&lt;br /&gt;Outer joins are used to return matching rows from both tables based on some criterion, plus rows from the "preserved" table or tables for which there was no match. You identify preserved tables with the LEFT, RIGHT, or FULL keywords. LEFT marks the left table as preserved, RIGHT marks the right table, and FULL marks both.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;SELECT C.CustomerID, CompanyName, OrderID&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;FROM dbo.Customers AS C&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;LEFT OUTER JOIN dbo.Orders AS O&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ON C.CustomerID = O.CustomerID;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That's just SQL, but I like it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16155384-3461743276495555515?l=roudrigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roudrigo.blogspot.com/feeds/3461743276495555515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://roudrigo.blogspot.com/2009/08/cross-inner-and-outer-join.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/3461743276495555515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/3461743276495555515'/><link rel='alternate' type='text/html' href='http://roudrigo.blogspot.com/2009/08/cross-inner-and-outer-join.html' title='Cross, Inner and Outer Join'/><author><name>Rodrigo Nascentes</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/4218/1523/320/roudrigo3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16155384.post-5680613342812880112</id><published>2009-08-13T13:33:00.002-03:00</published><updated>2009-08-13T14:04:45.705-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Querying...</title><content type='html'>One of most important things that you have to know about writing optimized queries in SQL Server is the sequence of each clause is executed. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(8)  &lt;/span&gt;SELECT &lt;span style="font-weight: bold;"&gt;(9)&lt;/span&gt; DISTINCT &lt;span style="font-weight: bold;"&gt;(11)&lt;/span&gt; &lt;top_specification&gt; &lt;select_list&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(1)&lt;/span&gt;  FROM &lt;left_table&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(3)  &lt;/span&gt;  &lt;join_type&gt; JOIN &lt;right_table&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(2) &lt;/span&gt;     ON &lt;join_condition&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(4) &lt;/span&gt; WHERE &lt;where_condition&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(5) &lt;/span&gt; GROUP BY &lt;group_by_list&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(6) &lt;/span&gt; WITH {CUBE | ROLLUP}&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(7)&lt;/span&gt;  HAVING &lt;having_condition&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(10)&lt;/span&gt; ORDER BY &lt;order_by_list&gt;&lt;br /&gt;&lt;br /&gt;Each step generates a virtual table that is used as the input to the following step. These virtual tables are not available to the caller. Only the table generated by the final step is returned to the caller. If a certain clause is not specified in a query, the corresponding step is simply skipped. See a little bit explanation about logical query processing:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. FROM:&lt;/span&gt; A Cartesian product (cross join) is performed between the first two tables in the FROM clause, and as a result, virtual table VT1 is generated.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. ON:&lt;/span&gt; The ON filter is applied to VT1. Only rows for which the &lt;join_condition&gt; is TRUE are inserted to VT2.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. OUTER (join):&lt;/span&gt; If an OUTER JOIN is specified (as opposed to a CROSS JOIN or an INNER JOIN), rows from the preserved table or tables for which a match was not found are added to the rows from VT2 as outer rows, generating VT3. If more than two tables appear in the FROM clause, steps 1 through 3 are applied repeatedly between the result of the last join and the next table in the FROM clause until all tables are processed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. WHERE: &lt;/span&gt;The WHERE filter is applied to VT3. Only rows for which the &lt;where_condition&gt; is TRUE are inserted to VT4.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5. GROUP BY:&lt;/span&gt; The rows from VT4 are arranged in groups based on the column list specified in the GROUP BY clause. VT5 is generated.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6. CUBE | ROLLUP:&lt;/span&gt; Supergroups (groups of groups) are added to the rows from VT5, generating VT6.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7.  HAVING: &lt;/span&gt;The HAVING filter is applied to VT6. Only groups for which the &lt;having_condition&gt; is TRUE are inserted to VT7.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8. SELECT:&lt;/span&gt; The SELECT list is processed, generating VT8.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;9. DISTINCT:&lt;/span&gt; Duplicate rows are removed from VT8. VT9 is generated.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;10. ORDER BY:&lt;/span&gt; The rows from VT9 are sorted according to the column list specified in the ORDER BY clause. A cursor is generated (VC10).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;11. TOP:&lt;/span&gt; The specified number or percentage of rows is selected from the beginning of VC10. Table VT11 is generated and returned to the caller.&lt;br /&gt;&lt;br /&gt;I hope this helps. Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16155384-5680613342812880112?l=roudrigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roudrigo.blogspot.com/feeds/5680613342812880112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://roudrigo.blogspot.com/2009/08/querying.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/5680613342812880112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/5680613342812880112'/><link rel='alternate' type='text/html' href='http://roudrigo.blogspot.com/2009/08/querying.html' title='Querying...'/><author><name>Rodrigo Nascentes</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/4218/1523/320/roudrigo3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16155384.post-7941533887553112786</id><published>2009-08-12T22:40:00.002-03:00</published><updated>2009-08-12T22:44:41.104-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><title type='text'>Visual Studio Shuts Down Suddenly</title><content type='html'>Sunny day in my city and I’m developing a simple application by using ASP.NET MVC 1.0 on my Visual Studio 2008 SP1 – I’ll write about that soon. After writing some lines of code, I try to open a .aspx file when my Visual Studio shuts down suddenly. Hmmm… I open Visual Studio again, open my project as well and try to open another .aspx file… Visual Studio shuts down again! Again! And Again! What’s going on? I ask myself. What’s the problem with .aspx files?&lt;br /&gt;&lt;br /&gt;In Event Viewer, I found the possible error related with that:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;.NET Runtime version 2.0.50727.3053 - Fatal Execution Engine Error (7A035E00) (80131506)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So I ask the buddy Google about that. I found that this issue can be related to PowerCommand that was not compatible with newer assemblies version in SP1.&lt;br /&gt;&lt;br /&gt;I uninstalled the PowerCommand from my machine and my Visual Studio doesn't shut down anymore… Now I can edit my .aspx file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16155384-7941533887553112786?l=roudrigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roudrigo.blogspot.com/feeds/7941533887553112786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://roudrigo.blogspot.com/2009/08/visual-studio-shuts-down-suddenly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/7941533887553112786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16155384/posts/default/7941533887553112786'/><link rel='alternate' type='text/html' href='http://roudrigo.blogspot.com/2009/08/visual-studio-shuts-down-suddenly.html' title='Visual Studio Shuts Down Suddenly'/><author><name>Rodrigo Nascentes</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/4218/1523/320/roudrigo3.jpg'/></author><thr:total>0</thr:total></entry></feed>
