• SSE4.1: the SIMD extension that made 128-bit code more practical

    SSE4.1 is one of the most useful refinement steps in the SSE family. It did not introduce wider vectors, new XMM registers, or the newer AVX encoding model. Instead, it filled many gaps that made SSE2, SSE3, and SSSE3 code awkward. Where SSE3 mostly improved floating-point horizontal operations, and SSSE3…

  • Web page scraping, the easy way

    Scraping content from websites can be a useful tool for gathering information or automating certain tasks. In C#, there are several libraries available that can help make this process easier. In this blog post, we will cover how to use the HtmlAgilityPack library to scrape content from websites in C#.…

  • Scraping dynamic page content

    Scraping dynamic content from websites has become an important task in data collection and analysis. With the advancements in web technologies, websites are now using dynamic content that cannot be easily scraped with traditional web scraping techniques. In this blog post, we will explore how to scrape dynamic content from…

  • Unit-testing file I/O in .NET

    File I/O looks like one of those things that cannot be unit-tested properly. A method that reads directories, scans files, compares extensions, and deletes files seems tied to the real machine where the test is running. That creates all the usual problems: tests become slow, fragile, dependent on local paths,…

  • Fixing Git pull errors in SourceTree

    If you encounter the following error when pulling a repository in SourceTree: VirtualAlloc pointer is null, Win32 error 487 it is due to to the Cygwin system failing to allocate a 5 MB large chunk of memory for its heap at the fixed address 0x68570000, while only a hole 2.5…

  • Testing private methods in C#: when it is a necessary evil

    Testing private methods is often debated among developers, as they typically represent implementation details and should not be directly tested. However, there are scenarios in legacy code where testing privately for safety before refactoring is necessary. The preferred approach is to test public behavior or extract complex logic into separate…

  • Windows Forms smells funny, but…

    In the “2016 .NET Community Report” just released by Telerik, the answers to the question “What technology would you choose if building for Windows Desktop?” were as follows: So roughly half of new desktop developments would be based on Windows Forms, a technology declared dead multiple times. The Telerik report…