<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[My > Experience & Progress]]></title><description><![CDATA[My > Experience & Progress]]></description><link>https://www.rodienscode.nl</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 21:11:12 GMT</lastBuildDate><atom:link href="https://www.rodienscode.nl/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Lessons Learned from Clean Code: A Guide to Writing Better Software]]></title><description><![CDATA[Write Code for People, Not Machines
One of the most important lessons from "Clean Code" is that code is written for people, not machines. Code is read much more often than it is written, so it's crucial that it be easy to read and understand. Martin ...]]></description><link>https://www.rodienscode.nl/lessons-learned-from-clean-code-a-guide-to-writing-better-software</link><guid isPermaLink="true">https://www.rodienscode.nl/lessons-learned-from-clean-code-a-guide-to-writing-better-software</guid><dc:creator><![CDATA[Ro4ien_]]></dc:creator><pubDate>Wed, 15 Feb 2023 22:10:39 GMT</pubDate><content:encoded><![CDATA[<h3 id="heading-write-code-for-people-not-machines">Write Code for People, Not Machines</h3>
<p>One of the most important lessons from "Clean Code" is that code is written for people, not machines. Code is read much more often than it is written, so it's crucial that it be easy to read and understand. Martin emphasizes the importance of writing code that is clear, concise, and readable. This includes using meaningful variable and function names, writing clear comments, and organizing code in a logical manner.</p>
<h3 id="heading-dont-repeat-yourself-dry">Don't Repeat Yourself (DRY)</h3>
<p>Another key lesson from "Clean Code" is the importance of following the "Don't Repeat Yourself" (DRY) principle. DRY states that every piece of knowledge in a system should have a single, unambiguous representation. When code is duplicated, it becomes difficult to maintain and can lead to bugs. To avoid duplicating code, it's important to write reusable functions and modules and to refactor code as needed.</p>
<h3 id="heading-writing-testable-code">Writing Testable Code</h3>
<p>Martin stresses the importance of writing code that is easy to test. Testable code is clean code. When code is easy to test, it's easier to find and fix bugs, and it's easier to add new features. The book provides tips for writing testable code, including writing small functions, keeping functions side-effect free, and designing functions that return values instead of modifying global state.</p>
<h3 id="heading-code-smells">Code Smells</h3>
<p>"Clean Code" also introduces the concept of code smells. Code smells are signs that code may have problems, such as being hard to maintain or having bugs. Common code smells include long functions, duplicated code, large classes, and methods with too many parameters. By identifying and fixing code smells, developers can write better code that is more maintainable and scalable.</p>
<h3 id="heading-simple-design-finally">Simple Design Finally</h3>
<p>"Clean Code" emphasizes the importance of simple design. Simple design makes code easier to maintain and scale. Martin advocates for writing code that does one thing and does it well. He also stresses the importance of writing code that is easy to understand and that follows established design patterns.</p>
<p>"Clean Code" is a must-read for any software developer who wants to write better code. The book is full of practical tips and techniques for writing code that is maintainable, scalable, and easy to understand. By following the lessons outlined in the book, developers can write clean code that is a joy to read and maintain.</p>
]]></content:encoded></item><item><title><![CDATA[The Power of Automation in DevOps: Streamlining Deployments and Improving Performance]]></title><description><![CDATA[Once upon a time, in a small software company, there was a team of developers and a team of operations personnel. The two teams worked separately and often struggled to communicate and collaborate effectively. This led to slow deployment times, frequ...]]></description><link>https://www.rodienscode.nl/the-power-of-automation-in-devops-streamlining-deployments-and-improving-performance</link><guid isPermaLink="true">https://www.rodienscode.nl/the-power-of-automation-in-devops-streamlining-deployments-and-improving-performance</guid><category><![CDATA[Devops]]></category><category><![CDATA[learning]]></category><category><![CDATA[Developer]]></category><category><![CDATA[development]]></category><category><![CDATA[business]]></category><dc:creator><![CDATA[Ro4ien_]]></dc:creator><pubDate>Fri, 10 Feb 2023 21:05:55 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1676063638295/4ea73bd0-7205-4bfc-8804-41e5e715362c.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Once upon a time, in a small software company, there was a team of developers and a team of operations personnel. The two teams worked separately and often struggled to communicate and collaborate effectively. This led to slow deployment times, frequent outages, and frustrated customers. The company's CEO was fed up with the constant issues and decided to implement a DevOps approach.</p>
<p>The DevOps team was led by a young and ambitious engineer named Alex. He was tasked with finding ways to improve the deployment process and reduce downtime. Alex quickly realized that automation was the key to success. He had heard of automation tools like Ansible, Puppet, and Chef, but had never used them before. Determined to make a difference, Alex dove headfirst into learning about automation and how it could be applied to the company's infrastructure.</p>
<p>The first step was to automate the deployment process. Before automation, deployments were manual and time-consuming. The operations team would spend hours manually updating servers, configuring databases, and testing the software. With automation, the process was reduced to a single command. The deployment script would handle everything from start to finish, freeing up the operations team to focus on more important tasks.</p>
<p>The second step was to automate the testing process. Automated testing saved the company time and reduced the risk of bugs being introduced into the software. The tests were run automatically every time a change was made to the code, ensuring that the software was always in a working state.</p>
<p>The third step was to automate the monitoring process. Automated monitoring allowed the DevOps team to quickly identify and resolve issues before they became major problems. With real-time notifications, the team was able to respond to issues before they impacted customers. This resulted in fewer outages and happier customers.</p>
<p>As the company continued to implement automation, the benefits became more and more apparent. Deployment times were reduced from days to hours. Downtime was reduced from hours to minutes. The DevOps team was able to focus on more strategic tasks, allowing the company to innovate faster and offer better products to its customers.</p>
<p>The company's success with automation did not go unnoticed. Other companies began to take notice and adopt the DevOps approach, including automation as a key component. The software industry was transformed, and DevOps became the norm.</p>
<p>Alex was proud of the work he and his team had done. Automation had allowed the company to reach new heights, and he was confident that it would continue to drive growth and success in the future. The company was now a shining example of the power of automation and the benefits it could bring to any organization.</p>
<p>Automation is a critical component of a successful DevOps strategy. It allows teams to focus on more important tasks, reduces downtime, and improves the overall deployment process. By embracing automation, organizations can reap the benefits of a faster, more efficient, and more reliable software delivery pipeline.</p>
]]></content:encoded></item><item><title><![CDATA[The DevOps Way: A Journey towards a High-Performing Culture]]></title><description><![CDATA[In this blog we'll mention several key principles that are essential for organizations looking to implement a DevOps culture and practice.
Introduction
The world of technology is constantly evolving, and organizations are under increasing pressure to...]]></description><link>https://www.rodienscode.nl/the-devops-way-a-journey-towards-a-high-performing-culture</link><guid isPermaLink="true">https://www.rodienscode.nl/the-devops-way-a-journey-towards-a-high-performing-culture</guid><category><![CDATA[Devops]]></category><category><![CDATA[Developer]]></category><category><![CDATA[business]]></category><category><![CDATA[business-process-automation]]></category><category><![CDATA[team collaboration]]></category><dc:creator><![CDATA[Ro4ien_]]></dc:creator><pubDate>Fri, 10 Feb 2023 17:38:32 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1676050044839/8c9aa17c-c77a-48ae-9488-4a1caf88b4c1.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this blog we'll mention several key principles that are essential for organizations looking to implement a DevOps culture and practice.</p>
<h3 id="heading-introduction">Introduction</h3>
<p>The world of technology is constantly evolving, and organizations are under increasing pressure to keep up with the latest trends and meet the demands of their customers. In this fast-paced environment, it's essential for companies to adopt a DevOps culture and practice that can help them stay ahead of the curve.</p>
<h3 id="heading-culture-of-collaboration">Culture of Collaboration</h3>
<p>The first principle of DevOps is the culture of collaboration. This means encouraging collaboration and communication between development and operations teams, breaking down silos, and fostering a culture of shared responsibility for the end-to-end delivery process. It's important to create a work environment where teams can work together seamlessly, share knowledge and expertise, and support each other in achieving a common goal.</p>
<h3 id="heading-continuous-learning-and-experimentation">Continuous Learning and Experimentation</h3>
<p>The second principle of DevOps is continuous learning and experimentation. This involves embracing a culture of continuous learning, with a focus on experimentation and iteration to drive innovation and improvements. By experimenting and testing new ideas, teams can quickly identify what works and what doesn't, and use this information to make continuous improvements.</p>
<h3 id="heading-automation">Automation</h3>
<p>The third principle of DevOps is automation. Automating manual and repetitive tasks can greatly improve efficiency and speed, freeing up teams to focus on high-value activities. Automation also helps to eliminate human error, reducing the risk of errors in the delivery process.</p>
<h3 id="heading-measurement-and-feedback">Measurement and Feedback</h3>
<p>The fourth principle of DevOps is measurement and feedback. Measuring and analyzing key performance indicators (KPIs) provides valuable insights into the delivery process, allowing teams to identify areas for improvement. Feedback is an essential part of the continuous improvement process, and it's important for organizations to create a culture that encourages open and honest feedback.</p>
<h3 id="heading-lean-product-development">Lean Product Development</h3>
<p>The fifth principle of DevOps is Lean product development. This involves adopting a Lean product development approach, with a focus on delivering value to customers quickly and iteratively. By continuously delivering value, teams can gather feedback from customers and make improvements that better meet their needs. This also helps organizations to stay competitive and remain relevant in a rapidly changing marketplace.</p>
<h3 id="heading-shift-left-security">Shift-Left Security</h3>
<p>The sixth principle of DevOps is shift-left security. This involves integrating security into the development process as early as possible, to minimize risk and reduce the potential for security breaches. By implementing security measures from the outset, organizations can prevent potential security issues from becoming major problems down the line.</p>
<h3 id="heading-high-trust-culture">High-Trust Culture</h3>
<p>The final principle of DevOps is the creation of a high-trust culture. This means fostering an environment where open communication, collaboration, and transparency are encouraged. Teams must be able to trust each other and work together effectively in order to achieve a common goal. A high-trust culture is essential for creating a DevOps culture that is truly effective and sustainable.</p>
<p>By embracing a culture of collaboration, continuous learning and experimentation, automation, measurement and feedback, Lean product development, shift-left security, and a high-trust culture, organizations can unlock the full potential of DevOps and achieve a high-performing culture that is poised for success in the fast-paced world of technology.</p>
]]></content:encoded></item><item><title><![CDATA[The Importance of Understanding Your Customer: Why It Matters for Your Business's Growth]]></title><description><![CDATA[In today's competitive business landscape, understanding your customer is more important than ever. It's the key to creating a successful sales and marketing strategy and driving growth for your company. The book "Revenue Disruption: Game-Changing Sa...]]></description><link>https://www.rodienscode.nl/the-importance-of-understanding-your-customer-why-it-matters-for-your-businesss-growth</link><guid isPermaLink="true">https://www.rodienscode.nl/the-importance-of-understanding-your-customer-why-it-matters-for-your-businesss-growth</guid><category><![CDATA[marketing]]></category><category><![CDATA[analytics]]></category><category><![CDATA[analysis]]></category><dc:creator><![CDATA[Ro4ien_]]></dc:creator><pubDate>Fri, 10 Feb 2023 17:02:12 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1676048230897/a8002649-e9cd-46a1-9d3b-3f99a3cac704.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In today's competitive business landscape, understanding your customer is more important than ever. It's the key to creating a successful sales and marketing strategy and driving growth for your company. The book "Revenue Disruption: Game-Changing Sales and Marketing Strategies to Accelerate Growth" highlights the importance of understanding the customer and provides practical advice for businesses looking to grow and disrupt their industries. In this blog, we'll delve into the key lessons from the book and explain why understanding the customer is essential for success.</p>
<h3 id="heading-know-your-customers-needs-and-pain-points">Know Your Customer's Needs and Pain Points</h3>
<p>To develop a successful sales and marketing strategy, you must first have a deep understanding of your customer. This includes knowing their needs and pain points. By understanding what your customer is looking for, you can develop a value proposition that speaks directly to their needs and provides real solutions.</p>
<h3 id="heading-create-a-compelling-value-proposition">Create a Compelling Value Proposition</h3>
<p>A clear and compelling value proposition is essential for any business. It differentiates you from your competitors and clearly communicates the benefits you provide to your customers. If you don't understand your customer, it's difficult to develop a value proposition that will resonate with them.</p>
<h3 id="heading-personalize-your-marketing-efforts">Personalize Your Marketing Efforts</h3>
<p>When you have a deep understanding of your customer, you can create more personalized marketing efforts. Personalized marketing has been shown to be much more effective than generic marketing efforts. By tailoring your marketing messages and campaigns to your specific customer segments, you can increase the chances that they will respond positively.</p>
<h3 id="heading-measure-and-improve-your-results">Measure and Improve Your Results</h3>
<p>Finally, understanding your customer is key to measuring and improving your results. By using data to track the effectiveness of your sales and marketing efforts, you can see what's working and what's not. This information can be used to make adjustments and improve your results over time.</p>
<p>By knowing your customer's needs and pain points, developing a compelling value proposition, personalizing your marketing efforts, and measuring and improving your results, you can create a sales and marketing strategy that will drive growth for your company</p>
]]></content:encoded></item><item><title><![CDATA[Download/ Upload large files]]></title><description><![CDATA[Let's begin by addressing the issue we aim to resolve. My employer operates a significant number of websites on Azure, primarily utilizing Azure Web Apps. However, the Azure web app backup service has a 10GB limit. While it is possible to use the _ba...]]></description><link>https://www.rodienscode.nl/download-upload-large-files</link><guid isPermaLink="true">https://www.rodienscode.nl/download-upload-large-files</guid><category><![CDATA[Azure]]></category><category><![CDATA[C#]]></category><dc:creator><![CDATA[Ro4ien_]]></dc:creator><pubDate>Fri, 08 Apr 2022 23:36:34 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1649459166197/sd1Z5_1nP.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Let's begin by addressing the issue we aim to resolve. My employer operates a significant number of websites on Azure, primarily utilizing Azure Web Apps. However, the Azure web app backup service has a 10GB limit. While it is possible to use the _backup.filter to exclude certain files, we wish to back up everything.</p>
<p>But we wanted to back up all the things :)</p>
<h2 id="heading-solving-the-problem">Solving the problem</h2>
<p>First thing first I needed a way to get the web app files. I leverage the KUDU API to download the files I needed.</p>
<blockquote>
<p>If you want to download large files with the HttpClient, it is important to specify the HttpCompletionOptions, for example var response = await httpClient.SendAsync(httpRequest, HttpCompletionOption.ResponseHeadersRead).</p>
<p>Otherwise, the HttpClient would buffer the entire response in memory. You can then process the response file as a stream via var stream = response.Content.ReadAsStreamAsync().</p>
</blockquote>
<p>Otherwise, you'll get a timeout exception (TaskCanceledException).</p>
<p>Or you can use GetStreamAsync() as it has HttpCompletionOptions built in.</p>
<pre><code class="lang-plaintext">   public static async Task&lt;Stream&gt; DownloadZipFile(string TARGETURL)
        {
            var byteArray = Encoding.ASCII.GetBytes(MainInformation.SiteUser + ":" + MainInformation.SitePassword);
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));

            return await client.GetStreamAsync(TARGETURL);
        }
</code></pre>
<p>And if you are uploading the file, pass the stream straight to the upload method.</p>
]]></content:encoded></item></channel></rss>