<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Ryan Rinaldi</title><link>https://ryanrinaldi.com/</link><description>Fixing bugs, writing code and helping people since 2000</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><managingEditor>ryan@ryanrinaldi.com (Ryan Rinaldi)</managingEditor><webMaster>ryan@ryanrinaldi.com (Ryan Rinaldi)</webMaster><lastBuildDate>Sat, 04 Feb 2023 09:54:12 -0600</lastBuildDate><atom:link href="https://ryanrinaldi.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Wrangling in Legacy Code</title><link>https://ryanrinaldi.com/posts/2023/wrangling-in-legacy-code/</link><pubDate>Sat, 04 Feb 2023 09:54:12 -0600</pubDate><author>Ryan Rinaldi</author><guid>https://ryanrinaldi.com/posts/2023/wrangling-in-legacy-code/</guid><description><![CDATA[<div class="featured-image">
                <img src="/posts/2023/wrangling-legacy-code-splash.jpg" referrerpolicy="no-referrer">
            </div>Working with legacy code can be a challenge, but with a few best practices in place, it can become a manageable task. Over the years, I&rsquo;ve learned a few tips that make it easier for teams to get a grip on the codebase.
Set up a script for the local environment. To streamline the process, use the tools that the team is most familiar with, whether it be Vagrant, Chef, Powershell DSC, or something else.]]></description></item><item><title>Programming by coincidence</title><link>https://ryanrinaldi.com/posts/2010/programming-by-coincidence/</link><pubDate>Thu, 25 Mar 2010 00:00:00 +0000</pubDate><author>Ryan Rinaldi</author><guid>https://ryanrinaldi.com/posts/2010/programming-by-coincidence/</guid><description>As a developer it’s of super duper importance that we understand what each and every line of code that we write does and how it works. While a lot of code that we write leverages libraries to provide wonderful abstractions over complex implementations we owe it to ourselves, the businesses that we work for and other developers on our teams to understand what these libraries are doing and how they are doing it.</description></item><item><title>Scrum - One team, multiple projects?</title><link>https://ryanrinaldi.com/posts/2009/scrum-one-team-multiple-projects/</link><pubDate>Sun, 25 Oct 2009 00:00:00 +0000</pubDate><author>Ryan Rinaldi</author><guid>https://ryanrinaldi.com/posts/2009/scrum-one-team-multiple-projects/</guid><description>At work we are in the process of implementing Scrum (actually tomorrow is our first Sprint Planning meeting. Really looking forward to it.)
Everybody on the team has read the books on Scrum and we are all very excited to finally be formalizing our processes but we are in disagreement about how best to actually implement Scrum.
The problem is that we are a small team responsible for a set of pretty independent applications.</description></item><item><title>SQL Server - Full text indexing of html content</title><link>https://ryanrinaldi.com/posts/2008/sql-server-full-text-indexing-of-html-content/</link><pubDate>Mon, 29 Dec 2008 00:00:00 +0000</pubDate><author>Ryan Rinaldi</author><guid>https://ryanrinaldi.com/posts/2008/sql-server-full-text-indexing-of-html-content/</guid><description><![CDATA[Sorry for the long and boring title, but I wanted to make it easy for Google to find this post.
If you happen to have a site that is storing Unicode (that&rsquo;s bold because it&rsquo;s important, as you will see later!) HTML content in a SQL Server database and you want to enable full text indexing there are a few hoops you have to jump through that aren&rsquo;t obvious.
First of all, you can&rsquo;t store your content as varchar, nvarchar or text.]]></description></item><item><title>Stupid SQL tricks</title><link>https://ryanrinaldi.com/posts/2008/stupid-sql-tricks/</link><pubDate>Wed, 19 Nov 2008 00:00:00 +0000</pubDate><author>Ryan Rinaldi</author><guid>https://ryanrinaldi.com/posts/2008/stupid-sql-tricks/</guid><description><![CDATA[Don&rsquo;t ask why I needed this, but here is a SQL function that will abbreviate a string:
create function dbo.fnAbbreviate(@source nvarchar(100)) returns nvarchar(100) begin if charindex(&#39; &#39;, @source) = 0 return @source declare @result nvarchar(100) declare @i int declare @char nvarchar(1) set @result = &#39;&#39; set @i = 0; while @i &lt; len(@source) begin set @char = substring(@source, @i, 1) if CONVERT(varbinary, @char) = CONVERT(varbinary, UPPER(@char)) begin set @result = @result + @char end set @i = @i + 1 end set @result = REPLACE(@result, &#39; &#39;, &#39;&#39;) return @result; end ]]></description></item><item><title>Tooling</title><link>https://ryanrinaldi.com/posts/2008/tooling/</link><pubDate>Sun, 16 Nov 2008 00:00:00 +0000</pubDate><author>Ryan Rinaldi</author><guid>https://ryanrinaldi.com/posts/2008/tooling/</guid><description>What tools do you use? If you are reading this I bet you use some flavor of Visual Studio and some form of source control, but like most developers your tooling stops there. Why? Have you tried the various Visual Studio add-ins like ReSharper or CodeRush? How about SQL Schema diff tools like SQL Compare from Red-Gate? How about a build server like Team Build or Cruise Control?
Most developers I know would answer no to most of those questions.</description></item><item><title>Staying Technically Relevant</title><link>https://ryanrinaldi.com/posts/2008/staying-technically-relevant/</link><pubDate>Tue, 11 Nov 2008 00:00:00 +0000</pubDate><author>Ryan Rinaldi</author><guid>https://ryanrinaldi.com/posts/2008/staying-technically-relevant/</guid><description>In the comments to my post yesterday (comments meaning the only one I got), my friend and coworker Richard Lowe pointed out that working with new technology also adds business value. I have to agree with him. Staying up to date with technology, whatever technology you use day to day, does increase business value. I took that as a given because, in my opinion, if you don&amp;rsquo;t stay up to date then you become technically irrelevant and technical irrelevancy adds negative business value.</description></item><item><title>Business value</title><link>https://ryanrinaldi.com/posts/2008/business-value/</link><pubDate>Sun, 09 Nov 2008 00:00:00 +0000</pubDate><author>Ryan Rinaldi</author><guid>https://ryanrinaldi.com/posts/2008/business-value/</guid><description><![CDATA[Anybody that has worked with me knows that I tend to be an early adopter of technology. I love playing with Beta, Alpha, CTP and &ldquo;Here is my bin folder&rdquo; builds. But sometimes as an early adopter I run into trouble. Not the kind of &ldquo;This build borked my machine&rdquo; types of trouble, but more along the lines of &ldquo;Boy this is neat but what value does it give me?&rdquo; kind of trouble.]]></description></item><item><title>Messaging</title><link>https://ryanrinaldi.com/posts/2008/messaging/</link><pubDate>Tue, 04 Nov 2008 00:00:00 +0000</pubDate><author>Ryan Rinaldi</author><guid>https://ryanrinaldi.com/posts/2008/messaging/</guid><description>Something that has running on a background thread for awhile is &amp;ldquo;How do we implement pub/sub messaging?&amp;quot;. One of the cons to having very silo-ed systems is how do you handle the cross-system reporting? For instance: When you want to get a list of all the customers that have more than 10 licenses and have more than 20 open tickets (totally contrived but you get the idea). That query spans 2 different domains: Billing and Support.</description></item><item><title>PDC 2008 Reflections</title><link>https://ryanrinaldi.com/posts/2008/pdc2008-reflections/</link><pubDate>Mon, 03 Nov 2008 00:00:00 +0000</pubDate><author>Ryan Rinaldi</author><guid>https://ryanrinaldi.com/posts/2008/pdc2008-reflections/</guid><description>When I left the LA Convention Center on Thursday I was saddened. I had so much fun at PDC that I didn&amp;rsquo;t want it to end. I wanted to stay there forever and learn all about all the new and interesting things coming out of MSFT and MS Research. As soon as I got back to my hotel, however, I was eager to get home. The more I thought about it, the more I realized that my brain was full and it was time to head back to home and bother my coworkers.</description></item></channel></rss>