<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Posts on Neolisk's Tech Blog</title><link>/posts/</link><description>Recent content in Posts on Neolisk's Tech Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>neolisk@gmail.com (Victor Zakharov)</managingEditor><webMaster>neolisk@gmail.com (Victor Zakharov)</webMaster><copyright>©2020-2024 Victor Zakharov. All Rights Reserved</copyright><lastBuildDate>Sat, 23 Mar 2024 00:00:00 +0000</lastBuildDate><atom:link href="/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Keys to Success</title><link>/posts/2024-03-23-keys-to-success/</link><pubDate>Sat, 23 Mar 2024 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 23 Mar 2024 12:05:09 -0400</atom:modified><guid>/posts/2024-03-23-keys-to-success/</guid><description>Success is a multifaceted concept, often visualized as the culmination of hard work, talent, and opportunity. Yet, beneath the surface of this broad achievement lies a core set of traits that can independently steer one toward their goals. This article explores these intrinsic keys to success, each capable of unlocking potential and fostering achievement in its own right.
1. Passion 2. Measurement 3. Compounding Growth Mindset 4. Inherent Curiosity Conclusion 1.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category><category>success</category><category>career</category><category>coach</category></item><item><title>Value of Learning in 2024</title><link>/posts/2024-03-02-value-of-learning/</link><pubDate>Sat, 02 Mar 2024 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 02 Mar 2024 11:11:00 -0500</atom:modified><guid>/posts/2024-03-02-value-of-learning/</guid><description>In an era dominated by artificial intelligence (AI) and technological advancements, the imperative for continuous learning transcends generational boundaries. The rapid evolution of the workplace landscape has made it increasingly clear that the ability to learn, unlearn, and relearn swiftly is crucial for everyone, irrespective of age. This necessity arises not from a lack of intelligence or willingness but from the accelerating pace of change itself, challenging professionals across the spectrum to embrace continuous learning as both an asset and a fundamental requirement.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category><category>learning</category><category>education</category><category>ai</category></item><item><title>Don't Reinvent the Wheel</title><link>/posts/2024-02-24-dont-reinvent-the-wheel/</link><pubDate>Sat, 24 Feb 2024 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 24 Feb 2024 10:48:14 -0500</atom:modified><guid>/posts/2024-02-24-dont-reinvent-the-wheel/</guid><description>In the dynamic world of software development, the inclination to &amp;ldquo;reinvent the wheel&amp;rdquo; represents a common challenge. Developers, driven by a desire for customization and control, often venture into creating bespoke solutions for problems that have already been addressed.
This approach, while showcasing technical prowess, can lead to inefficiencies, consuming precious time and resources that could be better allocated to enhancing the core value of the project. Recognizing this, the strategic use of third-party component libraries emerges as a compelling alternative.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category><category>architecture</category><category>workflow</category><category>components</category><category>library</category></item><item><title>Value of 100% Test Coverage</title><link>/posts/2024-02-18-value-of-100-percent-coverage/</link><pubDate>Sun, 18 Feb 2024 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 18 Feb 2024 16:23:03 -0500</atom:modified><guid>/posts/2024-02-18-value-of-100-percent-coverage/</guid><description>In the realm of software development, striving for 100% test coverage often generates heated debates, with critics labeling it as overly ambitious and of little practical value due to the considerable effort required. However, I contend that aiming for full test coverage transcends mere code quality, playing a crucial role in promoting fairness and discipline within a team. This approach not only challenges the conventional wisdom by highlighting the significant, often overlooked benefits for teams of varying skill levels, but also underscores the importance of setting high standards in collaborative environments.</description><dc:creator>Victor Zakharov</dc:creator><category>unit tests</category><category>code coverage</category><category>development</category><category>workflow</category></item><item><title>Bell Canada Internet Pricing Scam</title><link>/posts/2023-07-29-bell-internet-pricing-scam/</link><pubDate>Sat, 29 Jul 2023 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 29 Jul 2023 14:06:33 -0400</atom:modified><guid>/posts/2023-07-29-bell-internet-pricing-scam/</guid><description>On July 20th, 2023, I entered into a service agreement with Bell Canada for my internet services, and the installation was completed by a technician on July 22nd. The representative at the time assured me that my monthly charge would be $75, a $30 discount off their advertised public price of $105.
Just one week into the agreement, I found that my bill had been increased to $80. Without prior warning or notice.</description><dc:creator>Victor Zakharov</dc:creator><category>bell</category><category>internet</category><category>pricing</category><category>scam</category></item><item><title>Competitive Pythonic Shorthand</title><link>/posts/2023-07-06-competitive-python-shorthand/</link><pubDate>Thu, 06 Jul 2023 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Thu, 06 Jul 2023 17:11:54 -0400</atom:modified><guid>/posts/2023-07-06-competitive-python-shorthand/</guid><description>Competitive programming can be a thrilling challenge, and every second counts. Python, known for its simplicity and readability, also offers a variety of shorthand techniques that can save precious time. In this guide, we&amp;rsquo;ll explore some of these Pythonic strategies and how they can give you an edge in coding competitions.
List Comprehensions Ternary Operator Lambda Functions Multiple Variable Assignment Chaining Comparison Operators enumerate() zip() map() and filter() Conclusion List Comprehensions List comprehensions are a compact way of creating lists.</description><dc:creator>Victor Zakharov</dc:creator><category>python</category><category>shorthand</category><category>syntax</category><category>tricks</category></item><item><title>Running WSL2 GUI Apps in Windows 10</title><link>/posts/2023-04-18-running-wsl2-gui-apps-windows-10/</link><pubDate>Tue, 18 Apr 2023 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Tue, 18 Apr 2023 19:08:48 -0400</atom:modified><guid>/posts/2023-04-18-running-wsl2-gui-apps-windows-10/</guid><description>All of the answers I found online suggest using a complex workflow of installing X server, configuring RDP and connecting to your Linux box in order to run its GUI app. While this works, the approach is at least a few years old. It is no longer the most efficient way of doing it in 2023. Instead, you can use WSLg.
Introduction Using Linux GUI Apps with WSLg - TL;DR version Using Linux GUI Apps with WSLg - Full Version Getting To This Answer Introduction WSLg is a convenient and efficient solution for running Linux GUI apps on Windows, providing better performance and compatibility than using an X server, but most importantly giving your Linux app a feel of a native Windows application, which can even be launched from the Start Menu.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category><category>windows</category><category>software</category><category>linux</category><category>wsl2</category></item><item><title>Angular - Enterprise Library Workflow</title><link>/posts/2022-09-06-angular-enterprise-lib-workflow/</link><pubDate>Tue, 06 Sep 2022 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 11 Sep 2022 17:02:40 -0400</atom:modified><guid>/posts/2022-09-06-angular-enterprise-lib-workflow/</guid><description>In this workshop, we will create an Angular library, publishable to NPM, with multiple entry points, unit tests and CI/CD in GitHub. Source code for each step will be provided, as well as complete solution in a GitHub repo. Licensed under MIT, use it however you wish. You can skip the intro and see the steps here.
Why this article? Getting Started Conclusion Out of Scope Why this article? A little introduction into why I think an article like this is necessary and why existing internet resources are not enough.</description><dc:creator>Victor Zakharov</dc:creator><category>angular</category><category>development</category><category>library</category><category>npm</category></item><item><title>Converting to .NET 6 Core</title><link>/posts/2022-01-15-converting-to-dotnet-6-core/</link><pubDate>Sat, 15 Jan 2022 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 15 Jan 2022 16:35:22 -0500</atom:modified><guid>/posts/2022-01-15-converting-to-dotnet-6-core/</guid><description>Suppose we need to convert a legacy .NET 4.5 MVC or API project to .NET Core 6.0. It might sound like daunting task at first, and if you never did this, might cause you headache for a few days/weeks, or even months depending on the size of the project.
In this article I will do my best to reduce that headache by giving you starter info and some follow-up articles to learn more about the topic.</description><dc:creator>Victor Zakharov</dc:creator><category>dotnet</category><category>development</category><category>csharp</category></item><item><title>Webpack - Preserve Class Names During Minification</title><link>/posts/2021-10-08-webpack-minification-preserve-class-names/</link><pubDate>Fri, 08 Oct 2021 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Mon, 11 Oct 2021 19:14:31 -0400</atom:modified><guid>/posts/2021-10-08-webpack-minification-preserve-class-names/</guid><description>Suppose you have the following ES6 code:
1 2 3 class MyFancyService { // ... } And you want to have a refactor safe way to output the service name without instantiating an object. With some googling, you will probably use the following approach:
1 2 const serviceName = MyFancyService.name; // and use serviceName in some way This will work fine in dev, until you decide to minify it with webpack.</description><dc:creator>Victor Zakharov</dc:creator><category>webpack</category><category>esbuild</category><category>esbuild-loader</category><category>es6</category></item><item><title>.NET Architecture - eShopOnContainers</title><link>/posts/2021-06-05-dotnet-arch-eshop-on-cont/</link><pubDate>Sat, 05 Jun 2021 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 15:28:50 -0400</atom:modified><guid>/posts/2021-06-05-dotnet-arch-eshop-on-cont/</guid><description>Below video is from 2018, so almost 3 years old now, but somehow I only found it now. It&amp;rsquo;s a handy overview into microservices, has a few gotchas such as avoiding internal communication when fulfilling client requests, to reduce latency, as well as async workflows like adding items to cart. Check it out - if you are starting your journey into microservices with .NET, it&amp;rsquo;s well worth 30min of your time.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category><category>dotnet</category><category>microsoft</category><category>docker</category></item><item><title>Jetbrains .NET Days 2021 - Notes</title><link>/posts/2021-05-11-jetbrains-dotnet-days-2021/</link><pubDate>Tue, 11 May 2021 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Wed, 12 May 2021 16:35:28 -0400</atom:modified><guid>/posts/2021-05-11-jetbrains-dotnet-days-2021/</guid><description>Here are some of the notes I took while attending Jetbrains .NET Days 2021 online event - for select sessions from Days 1 and 2. Specifically, I skipped 1 session from Day 1 (React/CosmosDB), and only watched 1 session from Day 2 (AWS/Kubernetes). This is similar to my earlier MS Build notes articles for Day 1 and Day 2. Main purpose is providing a quick overview of the topics covered, if you do not have those hours to watch whole videos.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category><category>jetbrains</category><category>event</category><category>dotnet</category></item><item><title>Speed of Coding - Important?</title><link>/posts/2021-03-29-speed-of-coding/</link><pubDate>Mon, 29 Mar 2021 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Mon, 29 Mar 2021 20:02:21 -0400</atom:modified><guid>/posts/2021-03-29-speed-of-coding/</guid><description>Introduction Define speed Low quality software is useless Quality threshold Workflow beats talent Discipline is the new talent Introduction When hiring software developers, it seems that recently the focus has been on the speed of coding. Many companies give automated 1-1.5 hour coding tests where your code can be of any (=low) quality, as long as it passes all unit tests. Including all hidden tests, and including performance criteria in some cases.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category></item><item><title>The Outsourcing Trap</title><link>/posts/2021-01-02-outsourcing-trap/</link><pubDate>Sat, 02 Jan 2021 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 02 Jan 2021 12:46:57 -0500</atom:modified><guid>/posts/2021-01-02-outsourcing-trap/</guid><description>There are plenty of outsource shops who test their luck by selling cheap labor. The strategy is nothing new in a capitalist society, but the outcome can be devastating when it comes to software industry. It&amp;rsquo;s one thing when you hire a cashier, worst thing that can happen is they incorrectly scan some items, and your shop loses $100 in revenue. It&amp;rsquo;s a totally different situation when your software doesn&amp;rsquo;t work, and your client who paid 100s of millions of dollars wants their money back.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category></item><item><title>Developing for the Enterprise</title><link>/posts/2020-11-21-enterprise-development-workflow/</link><pubDate>Sat, 21 Nov 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 22 Nov 2020 18:39:39 -0500</atom:modified><guid>/posts/2020-11-21-enterprise-development-workflow/</guid><description>If you prefer to read individual sections, here is a table of contents.
Introduction Documentation Communication System Integration Training Coding Conclusion Introduction If you are sitting in the shade today, it&amp;rsquo;s because someone planted a tree a long time ago.
The goal of enterprise workflow is to make software development as easy and consistent as possible, less dependent of quality of talent, their mood and set of skills. It should also be possible to replace any given developer with another one of the same caliber and continue development as normal.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category></item><item><title>XPG GAMMIX S11 Pro benchmark</title><link>/posts/2020-10-24-xpg-gammix-s11-pro-ssd-benchmark/</link><pubDate>Sat, 24 Oct 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 24 Oct 2020 12:13:30 -0400</atom:modified><guid>/posts/2020-10-24-xpg-gammix-s11-pro-ssd-benchmark/</guid><description>I recently bought a new 2TB SSD to handle my virtual machines. This one is m.2, was previously using 256 GB SATA drive. Nothing against SATA, it just can&amp;rsquo;t compete on speed with m.2. Below is a screenshot from an SSD speed test using Crystal Disk Mark version 6.0.2 x64 (front) with temperature check in Hard Disk Sentinel in the background. 58C under 100% load for a few minutes is not bad on stock cooling.</description><dc:creator>Victor Zakharov</dc:creator><category>hardware</category><category>benchmark</category></item><item><title>Things Every Developer Should Know</title><link>/posts/2020-09-26-things-every-developer-should-know/</link><pubDate>Sat, 26 Sep 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 27 Sep 2020 15:12:38 +0000</atom:modified><guid>/posts/2020-09-26-things-every-developer-should-know/</guid><description>This article&amp;rsquo;s idea came up as I was working as a full time professional remote consultant with both Senior and Junior Developers of all levels, contractors and full time folks. It turns out that about 95% of developers regardless of their seniority could use below guide.
It is surprising how much friction is caused by missing knowledge of these simple things, so I decided to write up a condensed version to minimize reading time, and quickly fill the gap for those in need.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category></item><item><title>Configure Hosts File on Asus RT-AX88U Router</title><link>/posts/2020-08-14-configure-hosts-file-asus-rt-ax88u/</link><pubDate>Fri, 14 Aug 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 16 Aug 2020 00:04:57 +0000</atom:modified><guid>/posts/2020-08-14-configure-hosts-file-asus-rt-ax88u/</guid><description>Have you ever wondered how to configure local access to an externally accessible resource in your network, via the same domain name? Simple example is a NAS storage. In my case Synology DS918+. After setting up SSL on *.synology.me domain, I realized that I cannot access the NAS locally via the same domain name, only by IP. But accessing by IP gives me SSL related errors. Each part of the solution was not difficult to find.</description><dc:creator>Victor Zakharov</dc:creator><category>devops</category><category>software</category></item><item><title>Work from Home - Software Engineering Culture</title><link>/posts/2020-08-10-work-from-home-soft-eng-culture/</link><pubDate>Mon, 10 Aug 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Mon, 10 Aug 2020 20:25:37 -0400</atom:modified><guid>/posts/2020-08-10-work-from-home-soft-eng-culture/</guid><description>Working from home as a software developer/engineer, what will it be in a few years time? Which things became fundamentally different already, and which will change history? What if we never come back to norm? Let&amp;rsquo;s embrace the new situation rather than planning a come back. For this to happen certain habits need to be dropped, and other habits need be developed instead.
Asynchronous communication Workflows built around code Output vs hours worked Hiring A players Buy Equipment Complex Tasks First Encourage Opinion Meaning of Leadership Asynchronous communication Asynchronous communication is a secret to productivity when working from home.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category></item><item><title>Azure Q/A with Elkhan Yusubov</title><link>/posts/2020-06-18-azure-qa-with-elkhan-yusubov/</link><pubDate>Thu, 18 Jun 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Thu, 18 Jun 2020 07:13:55 -0400</atom:modified><guid>/posts/2020-06-18-azure-qa-with-elkhan-yusubov/</guid><description>There is plenty of information about Azure on the internet. However, a lot of it is written as marketing material or simply outdated. When it comes to real tasks, it turns out that much of those scripts and tutorials no longer work. This Q/A session with Elkhan Yusubov is covering key terms behind Azure, to set a good start for learning on your own. It is by no means an all-inclusive tutorial.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category><category>azure</category><category>cloud</category></item><item><title>React vs Blazor for Web Developers</title><link>/posts/2020-06-14-react-vs-blazor/</link><pubDate>Sun, 14 Jun 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 14 Jun 2020 18:58:29 -0400</atom:modified><guid>/posts/2020-06-14-react-vs-blazor/</guid><description>Found an interesting article comparing simple common tasks done with React and then Blazor. From Telerik blog, but good stuff, not written as ad, code samples provided.
Blazor vs React @ Telerik Blog. Topics covered:
Getting started Building the UI Passing data between components Handling Forms Routing Fetching data from an API Pros and cons of each Overall a very good starter article if you are considering Blazor and have some React experience, or any JS based front end (Angular, Vue etc.</description><dc:creator>Victor Zakharov</dc:creator><category>blazor</category><category>react</category><category>development</category></item><item><title>MS Build - Day 2 - Notes</title><link>/posts/2020-05-20-msbuild-day2-notes/</link><pubDate>Wed, 20 May 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Wed, 20 May 2020 19:48:00 -0400</atom:modified><guid>/posts/2020-05-20-msbuild-day2-notes/</guid><description>If you missed MS Build - Day 1 Notes, see here.
Introduction This article is intended as a summary of MS Build – Day 2, from my point of view. It focuses on key technical takeaways. For example, which technology should you watch out for? Which technology might become obsolete in 2 years? It is not meant the capture small /incremental process improvements, cool flashy things, excitement or hype. It is mainly to serve as a starting point to research a topic that interests you, if you did not have time to attend MS Build (or watch the videos, which I am sure will be published for everyone soon).</description><dc:creator>Victor Zakharov</dc:creator><category>microsoft</category><category>msbuild</category><category>event</category></item><item><title>MS Build - Day 1 - Notes</title><link>/posts/2020-05-19-msbuild-day1-notes/</link><pubDate>Tue, 19 May 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Wed, 20 May 2020 19:40:14 -0400</atom:modified><guid>/posts/2020-05-19-msbuild-day1-notes/</guid><description>Introduction This article is intended as a summary of MS Build – Day 1, from my point of view. It focuses on key technical takeaways. For example, which technology should you watch out for? Which technology might become obsolete in 2 years? It is not meant the capture small /incremental process improvements, cool flashy things, excitement or hype. It is mainly to serve as a starting point to research a topic that interests you, if you did not have time to attend MS Build (or watch the videos, which I am sure will be published for everyone soon).</description><dc:creator>Victor Zakharov</dc:creator><category>microsoft</category><category>msbuild</category><category>event</category></item><item><title>Blazor Style Encapsulation</title><link>/posts/2020-05-18-blazor-style-encapsulation/</link><pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Mon, 12 Oct 2020 08:58:13 -0400</atom:modified><guid>/posts/2020-05-18-blazor-style-encapsulation/</guid><description>This article was updated on October 12th, 2020, see the update below.
To explain what style encapsulation means, we will look at how Angular does it. Here is a lengthy article, which links to this demo. Or, if you prefer screenshots.
On this screenshot an h1 style is converted to _ngcontent-lvy-c0 class during compilation, and then it does not leak out styles to other components and the app. You can declare another h1 style in another component and that will not have any effect on this component, guaranteed by Angular.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category><category>blazor</category></item><item><title>Blazor Q/A with Tim Corey</title><link>/posts/2020-05-17-blazor-qa-with-tim-corey/</link><pubDate>Sun, 17 May 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 17 May 2020 10:53:42 -0400</atom:modified><guid>/posts/2020-05-17-blazor-qa-with-tim-corey/</guid><description>There is little information about Blazor on the internet. Even less as far as enterprise / professional Blazor development is concerned. Blazor is not exactly new, but still, it feels more as an undercover platform, even today in May of 2020. This Q/A session with Tim Corey is meant to fill the gap. Tim is a software developer, consultant, trainer, and Microsoft MVP, passionate about Blazor. He runs a YouTube channel dedicated to making the process of learning software development easier.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category><category>blazor</category><category>csharp</category></item><item><title>A Typical Freelancer's Work Day</title><link>/posts/2020-04-12-typical-freelancers-workday/</link><pubDate>Sun, 12 Apr 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Fri, 07 Aug 2020 16:39:27 -0400</atom:modified><guid>/posts/2020-04-12-typical-freelancers-workday/</guid><description>First and foremost, this is not an article to brag about how cool it is to be a freelancer. This is just the cold truth about the issues no-one is talking about. What it can be like, what you need to prepare for, if you consider becoming one. The views expressed here are exactly my own, you are free to disagree and post your ideas in your own blog or another public resource.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category><category>process</category></item><item><title>Angular - Senior developer interview questions</title><link>/posts/2020-03-14-angular-senior-dev-interview/</link><pubDate>Sat, 14 Mar 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 15 Mar 2020 15:00:05 -0400</atom:modified><guid>/posts/2020-03-14-angular-senior-dev-interview/</guid><description>How do you recognize a good developer at interview stage? Are they excited by learning new things or are they tired from it? Do they wake up and realize they still have not yet learnt everything they could? Or do they always know enough to just get by? When technology becomes obsolete every 2 years, 20 years of experience helps little. You are great at writing loops? Sorry folks, now we do functional programming.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category><category>angular</category></item><item><title>Definition of Maintainable Code</title><link>/posts/2020-02-23-define-maintainable-code/</link><pubDate>Sun, 23 Feb 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 23 Feb 2020 18:07:56 -0500</atom:modified><guid>/posts/2020-02-23-define-maintainable-code/</guid><description>There are several stages of maintainable code, each suitable for a particular situation. Let us call each stage a maintainability level. The higher the level, the more maintainable code is, and the more time it takes to write in this way. Do you always need the best possible maintainability?
For example, you are the only contributor for the code in question. You probably do not care much if someone else cannot maintain it.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category></item><item><title>Modern techniques for modern C# - Bill Wagner</title><link>/posts/2020-02-19-csharp-best-practices/</link><pubDate>Wed, 19 Feb 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Wed, 19 Feb 2020 19:54:37 -0500</atom:modified><guid>/posts/2020-02-19-csharp-best-practices/</guid><description>An interesting video from a recent NDC conference (Jan 27-31, 2020), comparing old coding style in C# with new options available to you as a developer. Shows a good deal of thought put into the language by its authors.
My favorite part is at 40:00 about simplying business requirement implementation with tuples and pattern matching.</description><dc:creator>Victor Zakharov</dc:creator><category>csharp</category><category>video</category></item><item><title>Enterprise Software Development Priorities</title><link>/posts/2020-02-06-enteprise-priorities-talk/</link><pubDate>Thu, 06 Feb 2020 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2020-02-06-enteprise-priorities-talk/</guid><description>In enterprise software development with lots of money involved, it often ends up being poured into the following 3 categories:
Business (business need, correctness of software in regard to business workflows) Quality (ease of maintainability, lack of bugs, need fewer developers) Speed (hire offshore, copy paste code, cut corners). Success of the project is determined based on the share of each component. So what should be the right share? Let&amp;rsquo;s ask this question differently - if you could choose only one, which one would you choose?</description><dc:creator>Victor Zakharov</dc:creator><category>development</category></item><item><title>.NET Core 2.0 Worth Using?</title><link>/posts/2017-09-24-dotnet-core-worth-it/</link><pubDate>Sun, 24 Sep 2017 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2017-09-24-dotnet-core-worth-it/</guid><description>September of 2017 is almost gone, and only now I had a chance to look at the most recent issue of the monthly MSDN magazine. What&amp;rsquo;s the hot topic in September? .NET Core 2.0 / Standard 2.0 is highly praised by most MSDN authors. One of the articles mentions a feature I did not know existed. It&amp;rsquo;s called Razor pages. In short, it&amp;rsquo;s the new Web Forms.
It allows you to finally transition to Razor even for small websites, which do not require a full blown MVC structure (where files live in 3 different folders, and you are constantly switching between them).</description><dc:creator>Victor Zakharov</dc:creator><category>dotnet</category></item><item><title>TSQL - Get Index By Table Name + Column Name</title><link>/posts/2017-09-24-tsql-get-index-by-table-name/</link><pubDate>Sun, 24 Sep 2017 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2017-09-24-tsql-get-index-by-table-name/</guid><description>Below SQL code will find an index name that corresponds to the given table name and column name pair, and only include those indices with one column (exclude composite indices). Indices can be changed / added / removed by a DBA without impact to the application (part of DB tuning), so it&amp;rsquo;s best not to assume their naming in an application deployment script. This can be useful to remove / replace certain indices without relying on index name.</description><dc:creator>Victor Zakharov</dc:creator><category>sql</category><category>tsql</category></item><item><title>Powershell - Get CPU Usage by Process (remote)</title><link>/posts/2017-04-19-powershell-get-cpu-usage-remote/</link><pubDate>Wed, 19 Apr 2017 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Thu, 30 Jan 2020 19:42:30 -0500</atom:modified><guid>/posts/2017-04-19-powershell-get-cpu-usage-remote/</guid><description>You would expect Get-Process to do the job, but it turns out that its CPU metric is not on a 0..100% scale.
Here is a one-liner (find who&amp;rsquo;s eating into your CPU - or that of a remote server):
1 gwmi Win32_PerfFormattedData_PerfProc_Process -filter &amp;#34;Name &amp;lt;&amp;gt; &amp;#39;_Total&amp;#39; and Name &amp;lt;&amp;gt; &amp;#39;Idle&amp;#39;&amp;#34; -Computer $servername | where { $_.PercentProcessorTime -gt 0 } | select Name, PercentProcessorTime For some reason, the total percentage of all selected processes can be greater than 100, I&amp;rsquo;m guessing there was a measurement lag.</description><dc:creator>Victor Zakharov</dc:creator><category>powershell</category></item><item><title>Extend Clickable Area For jQueryUI Slider</title><link>/posts/2017-02-15-jquery-extend-clickable-area-slider/</link><pubDate>Wed, 15 Feb 2017 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2017-02-15-jquery-extend-clickable-area-slider/</guid><description>Even using the default jQueryUI&amp;rsquo;s slider style, the handle is larger than its container. Now suppose your container is 3x smaller than the handle (specific design requirement). There is a problem - you have to hit the container precisely to be able to change the slider&amp;rsquo;s value. Otherwise nothing happens.
Here is what I mean:
It would be nice to extend the slider clickable area to pretend it&amp;rsquo;s actual height matches slider or its handle, if handle is taller.</description><dc:creator>Victor Zakharov</dc:creator><category>jquery</category><category>jqueryui</category></item><item><title>TypeScript - Getting started in Visual Studio 2015</title><link>/posts/2016-11-23-typescript-in-visual-studio-2015/</link><pubDate>Wed, 23 Nov 2016 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2016-11-23-typescript-in-visual-studio-2015/</guid><description>I decided to write this article simply because there are so many outdated answers to this question linked from Google.
Here are some of the things you should NOT do:
Install Web Essentials Install Node Package Manager Manually adjust project files to enable Typescript transpiler Automatically adjust project files by installing a nuget package Install something that downloads 1000s of files into a folder inside your project and works with fingers crossed.</description><dc:creator>Victor Zakharov</dc:creator><category>typescript</category><category>vs2015</category></item><item><title>Atom Editor by GitHub - Worth It?</title><link>/posts/2016-03-17-atom-editor/</link><pubDate>Thu, 17 Mar 2016 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2016-03-17-atom-editor/</guid><description>In short, Atom editor by GitHub is well-built, focused on code (there isn&amp;rsquo;t really anything getting in your way), similar to Sublime.
Now I haven&amp;rsquo;t used Sublime beyond basics and generally favour GUI, rather than command line. Everything can be found via CTRL+SHIFT+P. However, if something can be typed with 5 characters, and it could have also been called with 2 keystrokes, I&amp;rsquo;d choose the keystrokes approach. I&amp;rsquo;m not a Sublime user, you guessed it right, won&amp;rsquo;t be paying 70$ for a fancy text editor, if WebStorm is worth 59$.</description><dc:creator>Victor Zakharov</dc:creator><category>atom</category></item><item><title>Lock File Tool - Test Exception Handling</title><link>/posts/2015-08-25-lock-file-tool/</link><pubDate>Tue, 25 Aug 2015 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Thu, 30 Jan 2020 20:47:42 -0500</atom:modified><guid>/posts/2015-08-25-lock-file-tool/</guid><description>This command line tool did not work for me (access denied):
http://www.jensscheffler.de/filelocker. This Windows UI tool worked perfectly:
https://code.google.com/p/lockfile/downloads/detail?name=LockFile.exe&amp;amp;can=2&amp;amp;q=. It has less options, but it does a read lock, which is what I was looking for.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category><category>windows</category></item><item><title>C# - Normalize Whitespace Inside String</title><link>/posts/2015-08-14-csharp-normalize-whitespace/</link><pubDate>Fri, 14 Aug 2015 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2015-08-14-csharp-normalize-whitespace/</guid><description>Simple task - replace all sequential whitespace (tabs, spaces, newlines) with your character of choice, usually a space.
Fact - StackOverflow is on top in google results, when searching for &amp;ldquo;C# normalize whitespace&amp;rdquo;.
How to replace multiple white spaces with one white space c# Fastest way to remove extra white spaces Why this article? Highest voted answers are not the best performing, and some answers are just wrong.
I propose a solution which is based on this StackOverflow answer.</description><dc:creator>Victor Zakharov</dc:creator><category>csharp</category><category>algorithm</category></item><item><title>C# - Capture Full Stack Trace Inside Catch</title><link>/posts/2015-08-13-csharp-capture-full-stacktrace/</link><pubDate>Thu, 13 Aug 2015 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2015-08-13-csharp-capture-full-stacktrace/</guid><description>When you catch an exception, you only have stack trace relative to the catch point.
The problem is very clearly described in this article on CodeProject:
.NET: Exception stack trace has no frames above the catch point. Why is this important? Suppose the error occurs when sending email and this is a non-critical part of your application. Let&amp;rsquo;s say you send confirmation emails to clients as part of the ordering process.</description><dc:creator>Victor Zakharov</dc:creator><category>csharp</category><category>algorithm</category></item><item><title>ADATA UV131 32GB USB3.0 Flash Drive performance</title><link>/posts/2014-12-20-32gb-adata-uv131-usb3-perf/</link><pubDate>Sat, 20 Dec 2014 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Mon, 29 Mar 2021 12:24:08 -0400</atom:modified><guid>/posts/2014-12-20-32gb-adata-uv131-usb3-perf/</guid><description>This is a well-built metal case unibody flash drive (rugged zinc alloy, according to the manufacturer).
It was actually slightly smaller than it looked on the pictures.
I got a 32GB version for less than 15 CAD before tax, with shipping included.
It&amp;rsquo;s not the fastest flash drive I&amp;rsquo;ve seen on the market, but for the money, I think it&amp;rsquo;s a good investment.
Here are the numbers measured with CrystalDiskMark, USB2 and USB3 respectively:</description><dc:creator>Victor Zakharov</dc:creator><category>hardware</category><category>benchmark</category></item><item><title>Fix Ugly Fonts in Google Chrome 37</title><link>/posts/2014-09-05-fix-ugly-fonts-google-chrome/</link><pubDate>Fri, 05 Sep 2014 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2014-09-05-fix-ugly-fonts-google-chrome/</guid><description>Problem - after updating to the latest Chrome version (37), fonts look ugly.
v37 is supposed to introduce DirectWrite for font rendering, that makes fonts look better.
I&amp;rsquo;m using a non-standard 125% Windows DPI, it could be why they are ugly for me.
Solution, as quoted from here:
type &amp;#34;chrome://flags/#disable-direct-write&amp;#34; in your Chrome window and click &amp;#34;Enable&amp;#34; on &amp;#34;Disable DirectWrite&amp;#34;. DirectWrite should be off.</description><dc:creator>Victor Zakharov</dc:creator><category>chrome</category></item><item><title>Good 24IN LCD Monitor For Home/Office Use</title><link>/posts/2014-08-24-good-24-in-monitor-home-office/</link><pubDate>Sun, 24 Aug 2014 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2014-08-24-good-24-in-monitor-home-office/</guid><description>Modern monitors today have IPS+VA in one, which means great vertical viewing angles and also 100% color gamut reproduction.
So one does not need to choose either and just get both, for some 200-250 dollars.
However, they only have 1000 static contrast (read below why this was important for me) and many of them suffer from backlight bleed issue (near bottom of the screen), or produce high-pitch noise.
Another thing which I found interesting is that not all IPS monitors make up to 100% of the palette, make sure you read description about how much is exactly covered.</description><dc:creator>Victor Zakharov</dc:creator><category>hardware</category></item><item><title>Fix HTC Desire 601 signal (Virgin/Bell Canada)</title><link>/posts/2014-07-21-fix-htc-desire-601-signal/</link><pubDate>Mon, 21 Jul 2014 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2014-07-21-fix-htc-desire-601-signal/</guid><description>Bought this phone on 2-year contract from a Virgin Mobile booth.
On a side note, it&amp;rsquo;s not advertised as &amp;ldquo;601&amp;rdquo;, but I figured this one is closest to the specs of the phone being sold in Canada.
Anyway, starting day one, this phone was showing wireless signal problems (mobile network). I live in the GTA, your experiences may vary.
I used RF Signal Tracker to investigate.
Note RF signal tracker is not very stable for monitoring purposes, so for best results leave your phone open/unlocked with screen on.</description><dc:creator>Victor Zakharov</dc:creator><category>mobile</category><category>android</category><category>hardware</category></item><item><title>Runtime Code Coverage (WCF Service)</title><link>/posts/2014-07-17-runtime-code-coverage/</link><pubDate>Thu, 17 Jul 2014 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2014-07-17-runtime-code-coverage/</guid><description>In this article I will provide a workflow for monitoring code coverage in DLLs called from a WCF Service hosted with IIS.
You can use this approach to get runtime code coverage metrics from any service, and also for calls made via reflection.
Supported processor architectures are x86, x64 and x64 running as x86 mode.
These two tools are installed with Visual Studio 2013 (later: VS)
VSInstr VSPerfCmd Found under:</description><dc:creator>Victor Zakharov</dc:creator><category>vs2013</category></item><item><title>Your best developer's PC (ideas)</title><link>/posts/2014-06-16-best-developer-pc/</link><pubDate>Mon, 16 Jun 2014 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2014-06-16-best-developer-pc/</guid><description>This was originally planned as a series of articles about things to consider when buying/building your developer&amp;rsquo;s PC at home/work.
I never got back to expanding it beyond the bullet list plan, but I think this list is useful enough to be posted on its own, so here it goes.
Most of the points reflected here were written &amp;gt;0.5yr ago, and I kept 99% of the original text.
PC (hardware) - custom built Motherboard, any known brand full ATX motherboard, at least 8GB of memory if no virtual machines, and at least 16GB if virtual machines are planned.</description><dc:creator>Victor Zakharov</dc:creator><category>hardware</category></item><item><title>Battery life on a Nexus 10 (standby)</title><link>/posts/2014-06-11-battery-life-nexus-10/</link><pubDate>Wed, 11 Jun 2014 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2014-06-11-battery-life-nexus-10/</guid><description>I&amp;rsquo;ve had my Nexus 10 for over a year now (ordered directly from Google).
Not using it a lot these days, So most of the time it&amp;rsquo;s sitting on the shelf in standby mode (Wifi&amp;rsquo;s off).
I occasionally take it out, turn on wifi, to show a Youtube video to my parents, or just play a quick game with kids.
With this light use, what amazes me in it is the battery life.</description><dc:creator>Victor Zakharov</dc:creator><category>android</category><category>battery</category></item><item><title>Visual Studio 2013 Static Activation Key option</title><link>/posts/2014-04-22-vs-2013-static-activation/</link><pubDate>Tue, 22 Apr 2014 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2014-04-22-vs-2013-static-activation/</guid><description>I have read people&amp;rsquo;s complaints about the need to sign in to Visual Studio 2013 for it to run, without a possibility of running a disconnected/offline setup.
Introducing a static activation key licensing option (which I just discovered) - you can obtain it from your MSDN subscription page.
Just browse to where you would normally download the ISO, and then click on &amp;ldquo;Product Keys&amp;rdquo;.
You will see a popup similar to the following:</description><dc:creator>Victor Zakharov</dc:creator><category>development</category></item><item><title>VB.NET - Reading and writing app.config</title><link>/posts/2014-03-14-vbnet-reading-writing-app-config/</link><pubDate>Fri, 14 Mar 2014 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2014-03-14-vbnet-reading-writing-app-config/</guid><description>I found so many articles on the internet suggesting the need to write your own classes to read/write app.config.
While the read is fairly easy, people are struggling a lot with the write, some are saying that write is not supported by .NET at all.
There are numerous examples and training articles on how to get started with writing your own classes for that.
Well guess what - you don&amp;rsquo;t need to write your own classes.</description><dc:creator>Victor Zakharov</dc:creator><category>vbnet</category></item><item><title>Windows 7 x64 Performance - Host and Guest</title><link>/posts/2014-01-20-windows-7-performance-host-guest/</link><pubDate>Mon, 20 Jan 2014 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2014-01-20-windows-7-performance-host-guest/</guid><description>I am running Windows 7 x64 both as a host and a guest VM using VMWare Workstation v9.
Here are the figures of Windows Experience Index for each instance, so you can estimate virtualization efficiency:
Host Windows 7:
Guest Windows 7 - VMWare Workstation v.9:
Guest VM is allocated 2 cores, out of 4 cores total on my Intel i7-4770.
As you probably have heard, Windows 7 uses logarithmic scale for its performance score.</description><dc:creator>Victor Zakharov</dc:creator><category>windows</category><category>virtualization</category><category>benchmark</category></item><item><title>Persistent Drive Mapping In Windows 2012</title><link>/posts/2014-01-13-persistent-drive-mapping-windows-2012/</link><pubDate>Mon, 13 Jan 2014 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2014-01-13-persistent-drive-mapping-windows-2012/</guid><description>Problem By experiment, I discovered that Visual Subst no longer works in Windows Server 2012, as good as it did in previous versions of the OS.
Specifically for the purpose of referencing a DLL from a locally mapped drive. See below for more information.
Assumption In Windows 2012, 32-bit and 64-bit processes use separate network drive mapping (later - Z:). Did not find a confirmation on the internet.
Research 32-bit processes understand subst command, 64-bit need something else.</description><dc:creator>Victor Zakharov</dc:creator><category>windows</category></item><item><title>Powerline Performance Test - TP-Link 500Mbps TL-PA4010KIT</title><link>/posts/2013-12-29-powerline-performance-test/</link><pubDate>Sun, 29 Dec 2013 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2013-12-29-powerline-performance-test/</guid><description>This is just an experiment I&amp;rsquo;ve planned for Christmas, to verify if powerlines are any good, a couple years after they became popular on the market.
So I picked a rather new adapter kit, which was supposed to deliver 500 megabits over a 100 Mbit connection, which sounded kind of interesting.
Namely this one: TP-Link TL-PA4010KIT (AV500 Nano Powerline Adapter Starter Kit).
It is advertised as &amp;ldquo;high-speed data transfer rates of up to 500Mbps&amp;rdquo;, so let&amp;rsquo;s see what the real figures would be.</description><dc:creator>Victor Zakharov</dc:creator><category>hardware</category></item><item><title>SVN error - access to '.../!svn/act/{guid}' forbidden</title><link>/posts/2013-09-16-svn-error-access-to-guid-forbidden/</link><pubDate>Mon, 16 Sep 2013 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2013-09-16-svn-error-access-to-guid-forbidden/</guid><description>Client: Tortoise SVN 1.7.13 x64 on Windows 7.
Server: VisualSVN 2.1.3 Standard Edition.
Issue After a brand new checkout, developer is getting this error on commit:
Commit Failed (details below): Error Access to &amp;lsquo;/svn/&amp;hellip;/!svn/act/{guid}&amp;rsquo; forbidden Problem Letter case of the repository path specified for checkout must match actual repository path on the SVN server.
Workaround Grant &amp;ldquo;Admin&amp;rdquo; permissions to the user, then commit works. This was not an option in our case.</description><dc:creator>Victor Zakharov</dc:creator><category>development</category></item><item><title>Nikon Coolpix S9400 Feedback</title><link>/posts/2013-08-28-nikon-coolpix-9400-feedback/</link><pubDate>Wed, 28 Aug 2013 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2013-08-28-nikon-coolpix-9400-feedback/</guid><description>I decided to drop some good words about this camera after my last (positive) experience with it. This will be an article from an average home user with a slight hardware/software background. I will provide my personal experience and opinion regarding use of this camera. Expect all statements to be supported by facts, but do not expect lots of research effort being put around each.
Okay, a little bit of history of my purchases.</description><dc:creator>Victor Zakharov</dc:creator><category>hardware</category></item><item><title>HTML - How to Create Nice Blockquote Style</title><link>/posts/2013-07-10-html-create-blockquote-style/</link><pubDate>Wed, 10 Jul 2013 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Thu, 30 Jan 2020 20:47:42 -0500</atom:modified><guid>/posts/2013-07-10-html-create-blockquote-style/</guid><description>Here is my pure CSS implementation of simple blockquote style, based on this article.
I will explain every line of CSS being used as CSS comments - you will need most of them.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 blockquote { font-size: 0.9em; /* quoted text will be slightly smaller than a paragraph */ font-style: italic; /* quoted text will be italic, change this to suit your needs */ margin: 10px 0; /* 10px margin at top and bottom, to separate multiple quotes, or single quote from the rest of content */ padding-left: 60px; /*quotes will be indented by 60px from the left */ position: relative; /*this is needed for absolute positioning of the quote symbol - see below */ } blockquote:before { /* before each quotation, we will have a big double quote symbol */ font-family: Georgia, serif; /* quote symbol from this font looks nice to me, use any font family you like */ font-size: 80px; /* we need a big quote symbol, this one looks big enough to be noticeable */ content: &amp;#34;\201C&amp;#34;; /* this is a &amp;#34;left double quotation mark&amp;#34; - see below link */ position: absolute; /* needed for proper positioning of the quote symbol */ left: 15px; /* adjust this to move the quote symbol horizontally */ top: -10px; /* adjust this to move it vertically */ color: #7a7a7a; /* quote symbol is a shade of grey color, use a different color to suit your theme */ } blockquote cite { font-style: normal; /* parent blockquote is italic, my cite text is just using normal font style */ display: block; /* seems like by default cite element is inline, so this is to make right text-align work */ text-align: right; /* Yeah, I want my cite to be right aligned */ } blockquote cite:before { /* every cite will begin with that */ content: &amp;#34;\2014 \2009&amp;#34;; /* &amp;#34;em dash&amp;#34; + &amp;#34;thin space&amp;#34;, */ } Works in as low as IE8.</description><dc:creator>Victor Zakharov</dc:creator><category>html</category><category>css</category></item><item><title>Powershell - Export Logs from SVN</title><link>/posts/2013-04-17-powershell-export-svn-logs/</link><pubDate>Wed, 17 Apr 2013 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Thu, 30 Jan 2020 20:47:42 -0500</atom:modified><guid>/posts/2013-04-17-powershell-export-svn-logs/</guid><description>You will need a command line SVN tool for this to work, for example, SlikSVN.
Install it on your machine and configure environment:path to point to its binaries.
Then use below Powershell script (I called it Get-SvnLog.ps1):
1 2 3 4 5 6 7 8 9 10 11 12 13 ([xml](svn log -v --xml)).log.logentry | % { $entry = $_; $_.paths.path | foreach { $obj = 1 | select -Property Revision,Author,Date,Message,Action,FilePath; $obj.</description><dc:creator>Victor Zakharov</dc:creator><category>powershell</category></item><item><title>VB.NET - Getting Started with Custom Drawing</title><link>/posts/2013-04-13-vbnet-custom-drawing/</link><pubDate>Sat, 13 Apr 2013 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Thu, 30 Jan 2020 20:47:42 -0500</atom:modified><guid>/posts/2013-04-13-vbnet-custom-drawing/</guid><description>Here I am going to show some basics of custom drawing in VB.NET.
This is not production-class code, but rather a head start for those assessing whether or not it&amp;rsquo;s feasible to custom draw anything (result vs effort).
In this sample project, I will highlight all even items of a ListBox with LightGray color. Here is an extract of how it&amp;rsquo;s done, if you don&amp;rsquo;t want to download anything.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Private Shared Sub ListBox1_DrawItem(sender As System.</description><dc:creator>Victor Zakharov</dc:creator><category>vbnet</category></item><item><title>VB.NET - When not to use Relaxed Delegate Conversion</title><link>/posts/2013-02-14-vbnet-relaxed-delegate-conversion/</link><pubDate>Thu, 14 Feb 2013 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Thu, 30 Jan 2020 20:47:42 -0500</atom:modified><guid>/posts/2013-02-14-vbnet-relaxed-delegate-conversion/</guid><description>From MSDN:
Relaxed delegate conversion enables you to assign subs and functions to delegates or handlers even when their signatures are not identical. In practice, it means that the following code:
1 2 3 Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click MsgBox(&amp;#34;Hello&amp;#34;) End Sub Can be written like this:
1 2 3 Private Sub Button1_Click() Handles Button1.Click MsgBox(&amp;#34;Hello&amp;#34;) End Sub If you don&amp;rsquo;t need to use event arguments, such as in the above scenario, your code becomes much more readable by omitting argument clause.</description><dc:creator>Victor Zakharov</dc:creator><category>vbnet</category></item><item><title>Hard Disk Sentinel - Fix real time disk monitoring</title><link>/posts/2013-02-13-hard-disk-sentinel-fix-disk-perf-mon/</link><pubDate>Wed, 13 Feb 2013 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2013-02-13-hard-disk-sentinel-fix-disk-perf-mon/</guid><description>Even though this issue has an official FAQ on this page, I decided to include these short instructions on my blog.
Symptoms When you click on Disk Performance tab on any disk page, Hard Disk Sentinel says the following:
Real time performance monitoring is not supported on this disk Here is how it looks:
Solution Works for me most of the time (Windows 7 x64):
Start cmd as Administrator. Run lodctr /Q to list available performance counters.</description><dc:creator>Victor Zakharov</dc:creator><category>devops</category></item><item><title>VB.NET - The right way to read command line args</title><link>/posts/2013-02-08-vbnet-read-cmd-line-args/</link><pubDate>Fri, 08 Feb 2013 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2013-02-08-vbnet-read-cmd-line-args/</guid><description>While it may appear to be a simple question, there is really more to it. Please read this article carefully, even if you believe you know how to handle this situation.
And especially if you have been writing command line utilities for 10+ years and never encountered any issues using standard .NET functionality.
Approaches you may be thinking about at the moment, which are often suggested at forums, unfortunately, do not work:</description><dc:creator>Victor Zakharov</dc:creator><category>vbnet</category></item><item><title>VB.NET - Zip and Unzip String using GZipStream</title><link>/posts/2012-11-26-vbnet-zip-unzip-gzipstream/</link><pubDate>Mon, 26 Nov 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Thu, 30 Jan 2020 20:47:42 -0500</atom:modified><guid>/posts/2012-11-26-vbnet-zip-unzip-gzipstream/</guid><description>Original code that I found is in C#. So I converted it to VB.NET and confirmed working:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 Imports System.IO &amp;#39;... Public Shared Function Zip(text As String) As String Dim buffer As Byte() = System.</description><dc:creator>Victor Zakharov</dc:creator><category>vbnet</category><category>zip</category></item><item><title>Migration issue of MainMenu to MenuStrip</title><link>/posts/2012-10-09-migration-issue-mainmenu-item/</link><pubDate>Tue, 09 Oct 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2012-10-09-migration-issue-mainmenu-item/</guid><description>Suppose you were lucky to find this article and already resolved all your compile time errors. I found an issue that may require redesign of your application, even though everything else appears to be working fine. I&amp;rsquo;ll put it straight: MenuStrip/ToolStripMenuItem pair is not 100% backwards compatible with MainMenu/MenuItem. One particular thing is how keyboard shortcuts work.
In MainMenu concept, triggering a shortcut by pressing a hotkey combination causes .NET framework to open the corresponding menu under the hood, process Popup event and only then click the MenuItem.</description><dc:creator>Victor Zakharov</dc:creator><category>dotnet</category><category>menu</category></item><item><title>Dual HexaCore Xeon E5649 performance in HP DL380 G7</title><link>/posts/2012-09-24-dl380-g7-performance-xeon-e5649/</link><pubDate>Mon, 24 Sep 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 24 Oct 2020 12:47:11 -0400</atom:modified><guid>/posts/2012-09-24-dl380-g7-performance-xeon-e5649/</guid><description>First benchmarked using latest Passmark:
Then did some tests with latest Aida64:
Memory Read: 2884 MHz - Triple DDR3-1311 - 9-9-9-24 CR1 - 11394 MB/s
Memory Write: 2500 MHz - Triple DDR3-1314 - 9-9-9-24 CR1 - 7739 MB/s
Memory Copy: 2500 MHz - Triple DDR3-1314 - 9-9-9-24 CR1 - 8489 MB/s
Memory Latency: 2900 MHz - Triple DDR3-1312 - 9-9-9-24 CR1 - 77.6 ns
CPU Queen: 2500 MHz - Triple DDR3-1314 - 9-9-9-24 CR1 - 64097</description><dc:creator>Victor Zakharov</dc:creator><category>hardware</category><category>benchmark</category></item><item><title>Edit XML using Powershell</title><link>/posts/2012-09-24-powershell-edit-xml/</link><pubDate>Mon, 24 Sep 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Thu, 30 Jan 2020 20:47:42 -0500</atom:modified><guid>/posts/2012-09-24-powershell-edit-xml/</guid><description>Because there is no easy/built-in way to edit XML using Powershell, I wrote a script that can change parts of XML documents.
I used it for bulk edit of connections in Remote Desktop Manager, to change some values in RDP session over dozens of servers.
You can modify it for your needs - in simple cases you would only need to change ArrayOfConnection to your document&amp;rsquo;s root.
1 2 3 4 5 6 7 8 9 10 11 12 13 param($Path,$Key,$Value) $doc = [xml](gc $Path) $doc.</description><dc:creator>Victor Zakharov</dc:creator><category>powershell</category><category>xml</category></item><item><title>.NET Winforms - App loses focus when a window is closed</title><link>/posts/2012-09-21-dotnet-winforms-app-loses-focus/</link><pubDate>Fri, 21 Sep 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2012-09-21-dotnet-winforms-app-loses-focus/</guid><description>I have a main form which is an MDI parent and a modal form, which is a progress dialog. When loading is completed, an MDI child is opened. If it cannot be completed, an error message shows up with user prompt. Problem is if user takes action, and the modal form is closed, the focus is switched to the application, which was active before my application was started. In my case it was Visual Studio 2010.</description><dc:creator>Victor Zakharov</dc:creator><category>dotnet</category><category>winforms</category></item><item><title>Mushkin SSD in an HP ProLiant DL380 G7 server</title><link>/posts/2012-09-18-mushkin-ssd-hp-dl380-g7/</link><pubDate>Tue, 18 Sep 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2012-09-18-mushkin-ssd-hp-dl380-g7/</guid><description>Hardware:
HP ProLiant DL380 G7 Mushkin Enhanced Chronos SSD - 2.5&amp;quot; 240GB SATA III MLC (MKNSSDCR240GB) (RAID1) 2 x Seagate Savvio 10K.5 hard drive - 300 GB 2.5&amp;quot; 6Gb/s SAS 10000 rpm 64 MB Buffer (ST9300605SS) Benchmarked with CrystalDiskMark 3.0.1 x64 on Windows 2008 R2 Std + SP1.</description><dc:creator>Victor Zakharov</dc:creator><category>hardware</category><category>benchmark</category><category>ssd</category></item><item><title>Corsair RMA experience in Canada - Memory replacement</title><link>/posts/2012-09-11-corsair-rma-experience-canada/</link><pubDate>Tue, 11 Sep 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2012-09-11-corsair-rma-experience-canada/</guid><description>Here is what I got:
Corsair Vengeance Low Profile 16GB 4X4GB DDR3-1600 9-9-9-24 Dual Channel Memory Kit
After installing it, I noticed weird blue screens and sudden application crashes on a fairly new workstation. They did not happen very often, maybe 1-2 times a day, so not devastating, but quite annoying. Tried many things to remedy, but then decided to check memory with Memtest. During the first 15% of it I got over 100K errors in one specific region of the 16GB range, so I estimated 1 stick is faulty.</description><dc:creator>Victor Zakharov</dc:creator><category>corsair</category><category>rma</category><category>hardware</category></item><item><title>Many packages did not load correctly in Visual Studio 2010</title><link>/posts/2012-09-07-vs2010-packages-not-load-correctly/</link><pubDate>Fri, 07 Sep 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2012-09-07-vs2010-packages-not-load-correctly/</guid><description>So I have my VS 2010 and also just installed VS 2012. After that my main project started showing this error:
&amp;ldquo;The ‘VSTS for Database Professionals Sql Server Data-tier Application’ package did not load correctly&amp;rdquo;
And also some other errors about components I have never heard before.
This solution provided by Eric Lee worked for me.
Even though the author intended it for a slightly different set of actions.
Short version (copied from the above website):</description><dc:creator>Victor Zakharov</dc:creator><category>vs2010</category><category>vs2012</category></item><item><title>How many tables do I have in a database (MS SQL)</title><link>/posts/2012-08-16-mssql-count-db-tables/</link><pubDate>Thu, 16 Aug 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2012-08-16-mssql-count-db-tables/</guid><description>Here is a one-liner:
1 SELECT COUNT(*) FROM (SELECT DISTINCT table_name FROM INFORMATION_SCHEMA.TABLES) a</description><dc:creator>Victor Zakharov</dc:creator><category>sql</category></item><item><title>Update of Google Chrome Fails - Inconsistent Group Policy</title><link>/posts/2012-08-12-update-chrom-fail-group-policy/</link><pubDate>Sun, 12 Aug 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2012-08-12-update-chrom-fail-group-policy/</guid><description>It appears that Google Chrome provides a solution for this, available at this link.
Unfortunately, it did not work for me, because all options were already set to Not configured and it still could not update.
What I did was navigate to registry at HKLM/Software/Policies/Google and delete the Update folder under that.
Restarted Chrome, retried updating and it worked flawlessly.</description><dc:creator>Victor Zakharov</dc:creator><category>chrome</category><category>software</category></item><item><title>PowerShell - Convert Array To HashTable</title><link>/posts/2012-08-02-powershell-convert-array-to-hashtable/</link><pubDate>Thu, 02 Aug 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Thu, 30 Jan 2020 20:47:42 -0500</atom:modified><guid>/posts/2012-08-02-powershell-convert-array-to-hashtable/</guid><description>There are many ways to do this, depending on what you need. In this article I&amp;rsquo;m going to highlight 2 of them.
Function-style conversion:
1 2 3 4 5 6 function ArrayToHash($a) { $hash = @{} $a | foreach { $hash[$_.ProcessName] = $_ } return $hash } Usage:
1 ArrayToHash (Get-Process) Filter-style conversion:
1 2 3 4 5 6 filter ArrayToHash { begin { $hash = @{} } process { $hash[$_.</description><dc:creator>Victor Zakharov</dc:creator><category>powershell</category></item><item><title>Repair Internet Explorer 9</title><link>/posts/2012-07-31-repair-internet-explorer-9/</link><pubDate>Tue, 31 Jul 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 29 Feb 2020 14:57:34 -0500</atom:modified><guid>/posts/2012-07-31-repair-internet-explorer-9/</guid><description>About a week ago Internet Explorer 9 started showing an error on startup on one of our PCs at work. This solution worked perfectly - no issues so far. Here is the compact version - we will be doing settings reset:
Click &amp;ldquo;Tools&amp;rdquo; (the right-most gear icon) -&amp;gt; Internet Options Go to &amp;ldquo;Advanced&amp;rdquo; tab -&amp;gt; Reset&amp;hellip; Click Reset to confirm. Note that I did not delete personal settings and it still worked.</description><dc:creator>Victor Zakharov</dc:creator><category>software</category></item><item><title>Cannot Compact VHD Due To File System Limitation</title><link>/posts/2012-07-12-cannot-compact-vhd/</link><pubDate>Thu, 12 Jul 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 29 Feb 2020 15:00:54 -0500</atom:modified><guid>/posts/2012-07-12-cannot-compact-vhd/</guid><description>Very likely, deleting your shadow copies on guest machine will help.
I just disabled shadow copy on C: and it worked for me on Windows 2008 R2 + SP1.
More information here.</description><dc:creator>Victor Zakharov</dc:creator><category>software</category><category>devops</category></item><item><title>Clean Up After Installing Service Pack 1 on Windows 2008 R2</title><link>/posts/2012-07-10-clean-up-after-service-pack-install/</link><pubDate>Tue, 10 Jul 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 05 Jun 2021 11:36:56 -0400</atom:modified><guid>/posts/2012-07-10-clean-up-after-service-pack-install/</guid><description>Here is the command:
dism /online /cleanup-image /spsuperseded In my case I was able to reclaim &amp;gt;10GB of disk space on a system drive.</description><dc:creator>Victor Zakharov</dc:creator><category>devops</category></item><item><title>VB.NET - Hidden items in a ListBox</title><link>/posts/2012-06-21-vbnet-hidden-items-in-listbox/</link><pubDate>Thu, 21 Jun 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 29 Feb 2020 15:06:15 -0500</atom:modified><guid>/posts/2012-06-21-vbnet-hidden-items-in-listbox/</guid><description>There is one good way to dynamically show/hide items in a ListBox - use a DataView as DataSource.
You do not need to manually Add and Remove items from your list. In fact, coding effort is very low with this approach.
Here is the extract in VB.NET, which shows the idea:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Public Class frm_main Dim _dataView As DataView Private Sub MyBase_Load(sender As System.</description><dc:creator>Victor Zakharov</dc:creator><category>vbnet</category><category>dotnet</category></item><item><title>32GB ADATA S102 Pro USB3.0 Flash Drive Benchmarked</title><link>/posts/2012-05-17-32gb-adata-s102-pro-usb3-perf/</link><pubDate>Thu, 17 May 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 24 Oct 2020 12:47:11 -0400</atom:modified><guid>/posts/2012-05-17-32gb-adata-s102-pro-usb3-perf/</guid><description>Here are the results from CrystalDiskMark 3.0.1 (x64), connected over USB2.0 and USB3.0 respectively:
Very diligent with specs, and actually performing better at USB2 than advertised by ADATA.
Looks like a good deal for 30$. Some personal concerns:
Neck strap is not included, so might need to buy your own off eBay or similar. Got 5 for 1$, shipping included. Aluminum casing is nice, but the plastic cap does not seem to hold firmly.</description><dc:creator>Victor Zakharov</dc:creator><category>hardware</category><category>benchmark</category></item><item><title>VB.NET - Delay form resize-to-fit until it loads</title><link>/posts/2012-05-08-vbnet-delay-form-resize-to-fit/</link><pubDate>Tue, 08 May 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 29 Feb 2020 15:14:35 -0500</atom:modified><guid>/posts/2012-05-08-vbnet-delay-form-resize-to-fit/</guid><description>Suppose every once in a while in your application you need to have a popup dialog being shown. This dialog is a value picker, nothing more. It shows as many values as your screen can handle.
Problem happens when list population takes considerable amount of time, say, 5 seconds.
Until then you are completely unsure which size it needs to resize to.
Attached is a piece of production quality code, with irrelevant features and optimizations left out.</description><dc:creator>Victor Zakharov</dc:creator><category>vbnet</category><category>dotnet</category></item><item><title>VB.NET - Get all controls of specified type from tree</title><link>/posts/2012-05-08-vbnet-get-all-controls-of-type/</link><pubDate>Tue, 08 May 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 29 Feb 2020 15:18:14 -0500</atom:modified><guid>/posts/2012-05-08-vbnet-get-all-controls-of-type/</guid><description>Linearise ControlCollection tree into array of Control - generic extension method, no recursion, LINQ or GetNextControl:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 &amp;lt;System.Runtime.CompilerServices.Extension()&amp;gt; Friend Function GetAllControlsOfType(Of T As Control)(ByVal controls As Control.ControlCollection) As T() Dim controlsArray(controls.Count - 1) As Control controls.CopyTo(controlsArray, 0) Dim oldControlSieveList As New List(Of Control)(controlsArray) Dim newControlSieveList As List(Of Control) Dim targetControlList As New List(Of T) While oldControlSieveList.</description><dc:creator>Victor Zakharov</dc:creator><category>vbnet</category><category>dotnet</category></item><item><title>Merge Excel 2010 worksheets into one</title><link>/posts/2012-04-18-merge-excel-worksheets/</link><pubDate>Wed, 18 Apr 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 29 Feb 2020 15:24:05 -0500</atom:modified><guid>/posts/2012-04-18-merge-excel-worksheets/</guid><description>Step 1. Save each worksheet into an individual file. You will need Developer tab enabled/visible to use the code below - File/Options/Customize Ribbon/Check &amp;lsquo;Developer&amp;rsquo; tab on the right.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Option Explicit Sub mysaver() Dim counter As Integer counter = 1 &amp;#39; counter is for the number of sheets in the workbook Do While counter &amp;lt;= Worksheets.</description><dc:creator>Victor Zakharov</dc:creator><category>software</category><category>excel</category></item><item><title>Connecting a router with DD-WRT in repeater mode</title><link>/posts/2012-04-09-connect-router-in-repeater-ddwrt/</link><pubDate>Mon, 09 Apr 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 29 Feb 2020 15:27:01 -0500</atom:modified><guid>/posts/2012-04-09-connect-router-in-repeater-ddwrt/</guid><description>Asus RT-N12, DD-WRT v24-sp2 build 14896 (08/07/10), mini image (4MB firmware size), connected to the internet, later being referred to as Router 1.
TP-Link TL-WR1043ND, same version, regular firwmare (8MB), later Router 2.
Despite routers run on Broadcom and Atheros chips, it was possible to configure them to cooperate. Both internet and local network are now working.
Setup - Router 1
WAN Connection Type = Automatic configuration - DHCP.
Local IP Address = 192.</description><dc:creator>Victor Zakharov</dc:creator><category>hardware</category><category>software</category></item><item><title>Enable Standby USB on Asus P8Z68-V Pro/GEN3</title><link>/posts/2012-04-01-enable-standby-usb-asus-p8z68-v-pro-gen3/</link><pubDate>Sun, 01 Apr 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 29 Feb 2020 15:31:14 -0500</atom:modified><guid>/posts/2012-04-01-enable-standby-usb-asus-p8z68-v-pro-gen3/</guid><description>One of the use cases - you might need it to charge your cell phone over USB, while PC is off. By default, this option is disabled on this motherboard - using latest BIOS (v3202).
To enable, look under Advanced / Onboard Devices Configuration / Asmedia USB 3.0 Battery Charging Support (see picture to the left - clickable).
If you are wondering, why I took a photo rather than a screenshot - F12 did not work (tried two different flash drives in both rear and front ports).</description><dc:creator>Victor Zakharov</dc:creator><category>hardware</category><category>software</category></item><item><title>Cannot open .SQL file in Visual Studio 2010</title><link>/posts/2012-02-29-cannot-open-sql-file-vs-2010/</link><pubDate>Wed, 29 Feb 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 29 Feb 2020 15:34:59 -0500</atom:modified><guid>/posts/2012-02-29-cannot-open-sql-file-vs-2010/</guid><description>Environment hangs, completely at times, or just for several seconds. If it resumes after hanging, you are able to close the tab where this .SQL file would show up.
In any case, you cannot see or edit anything in there, seeing this Visual Studio 2010 branded blue background all over the contents area.
The solution, which worked for me - get the DVD with Visual Studio installation files and install from WCU\DAC\DACProjectSystemSetup_enu.</description><dc:creator>Victor Zakharov</dc:creator><category>devops</category><category>sql</category></item><item><title>.NET - AddRange for HashSet</title><link>/posts/2012-02-28-dotnet-addrange-hashset/</link><pubDate>Tue, 28 Feb 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 29 Feb 2020 15:36:36 -0500</atom:modified><guid>/posts/2012-02-28-dotnet-addrange-hashset/</guid><description>You do not need to implement your own HashSet for that, just use the native UnionWith extension method.</description><dc:creator>Victor Zakharov</dc:creator><category>dotnet</category></item><item><title>VB.NET - DropDownOpening Event For ComboBox</title><link>/posts/2012-02-21-vbnet-dropdownopening-event-combobox/</link><pubDate>Tue, 21 Feb 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 29 Feb 2020 15:39:47 -0500</atom:modified><guid>/posts/2012-02-21-vbnet-dropdownopening-event-combobox/</guid><description>Here is a proper way to do it - inherit a class from native ComboBox and override OnDropDown to raise a custom DropDownOpening event first:
1 2 3 4 5 6 7 8 9 10 11 12 13 Public Class MyComboBox : Inherits ComboBox Public Event DropDownOpening(sender As Object, e As System.EventArgs) Protected Overrides Sub OnDropDown(e As System.EventArgs) RaiseEvent DropDownOpening(Me, e) MyBase.OnDropDown(e) End Sub End Class Private Sub MyComboBox1_DropDownOpening(sender As Object, e As System.</description><dc:creator>Victor Zakharov</dc:creator><category>vbnet</category><category>dotnet</category></item><item><title>Memory Upgrade For AOD257 Laptop - 4GB?</title><link>/posts/2012-02-16-memory-upgrade-aod257-4gb/</link><pubDate>Thu, 16 Feb 2012 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 29 Feb 2020 15:42:57 -0500</atom:modified><guid>/posts/2012-02-16-memory-upgrade-aod257-4gb/</guid><description>I recently bought one of those 10-inch AOD257 series laptop for my father.
Two issues with it: Windows 7 Starter and just 1GB of memory. First, upgraded to Win7 Enterprise. After that been thinking to upgrade memory for a while, and decided to try fitting a 4GB stick. Acer suggested it not being possible on their website, but there were some guys on Youtube who did not agree, so I decided to give it a try.</description><dc:creator>Victor Zakharov</dc:creator><category>hardware</category></item><item><title>Skype Crashes When Clicking On Any Contact</title><link>/posts/2011-12-31-skype-crashes-on-contact-click/</link><pubDate>Sat, 31 Dec 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 01 Mar 2020 15:27:43 -0500</atom:modified><guid>/posts/2011-12-31-skype-crashes-on-contact-click/</guid><description>To resolve, install v5.7.0 (beta) - latest as of this writing - over your current version:
http://www.skype.com/intl/en/get-skype/on-your-computer/windows/beta/. Although not really a solution, but I tried to upgrade my 5.5.0 (non-beta) and it worked on Windows 7 Enterprise x86 SP1.</description><dc:creator>Victor Zakharov</dc:creator><category>software</category></item><item><title>Memory performance of Acer's budget desktop</title><link>/posts/2011-11-09-acer-desktop-memory-perf/</link><pubDate>Wed, 09 Nov 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 24 Oct 2020 12:47:11 -0400</atom:modified><guid>/posts/2011-11-09-acer-desktop-memory-perf/</guid><description>Did not have a chance to do a full performance test on this machine (VX4618G-Ei7260W).
Memory, however, works quite well for a $700 PC, benchmarked with Aida64:
Read: 16.4 GB/s Write: 18.6 GB/s Copy: 18.3 GB/s Latency: 53.1ns CPU Queen: 43.7K (okay, I was just curious). Upgrading stock memory to Kingston Hyper-X 1600MHz CL9 did not improve speeds. It appears the motherboard does not support XMP and continues to run in casual mode.</description><dc:creator>Victor Zakharov</dc:creator><category>hardware</category><category>benchmark</category></item><item><title>SQL server 2005 express tools blocking installation of denali</title><link>/posts/2011-10-27-sql-2005-expr-tools-blocking-inst-denali/</link><pubDate>Thu, 27 Oct 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 01 Mar 2020 15:33:44 -0500</atom:modified><guid>/posts/2011-10-27-sql-2005-expr-tools-blocking-inst-denali/</guid><description>It appears some SQL Server 2005 ghosts are still hiding somewhere in your system.
To install Denali, you will need to remove the following keys from the registry:
HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\90 HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\90 Once removed, just Re-Run the checks, now it should succeed.
Note that you do not need to delete corresponding folders on your disk.
This article gets a credit for pointing in the right direction.</description><dc:creator>Victor Zakharov</dc:creator><category>devops</category><category>software</category></item><item><title>WMI query - incorrect namespace on Windows 2003 R2</title><link>/posts/2011-10-27-wmi-query-incorrect-namespace-win2003r2/</link><pubDate>Thu, 27 Oct 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 01 Mar 2020 15:37:55 -0500</atom:modified><guid>/posts/2011-10-27-wmi-query-incorrect-namespace-win2003r2/</guid><description>This article is a sequel to WMI Query - Incorrect Class on Windows 2003 R2?. It solves another common problem with WMI on Windows 2003 called Incorrect Namespace, occurring on most queries.
A simple way to diagnose it - go to Computer Management -&amp;gt; WMI Control -&amp;gt; Properties, chances are you will see many errors on the General tab.
Also, when you expand Security/Root, you will only see a couple of folders there, and CIMV2 is missing.</description><dc:creator>Victor Zakharov</dc:creator><category>devops</category><category>software</category></item><item><title>MS SQL Server 2008 R2 error log growing rapidly</title><link>/posts/2011-10-11-sql-2008-error-log-growing-rapidly/</link><pubDate>Tue, 11 Oct 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 01 Mar 2020 15:41:11 -0500</atom:modified><guid>/posts/2011-10-11-sql-2008-error-log-growing-rapidly/</guid><description>MS SQL server 2008 R2 was spamming the error log with the following two messages (got around 50GB of them in 4 days):
Message A.
An exception occurred while enqueueing a message in the target queue. Error: 15517, State: 1. Cannot execute as the database principal because the principal &amp;ldquo;dbo&amp;rdquo; does not exist, this type of principal cannot be impersonated, or you do not have permission.
Message B.
The activated proc &amp;lsquo;[dbo].</description><dc:creator>Victor Zakharov</dc:creator><category>devops</category><category>software</category><category>sql</category></item><item><title>MS SQL drop column with default constraint</title><link>/posts/2011-10-04-sql-drop-column-with-default-constraint/</link><pubDate>Tue, 04 Oct 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 01 Mar 2020 15:43:55 -0500</atom:modified><guid>/posts/2011-10-04-sql-drop-column-with-default-constraint/</guid><description>The following MS SQL script will generate MS SQL statements to drop a list of columns with default constraint for a certain table.
Need to change table_name and list of columns, as applicable. Statements will be generated only if required.
To make things clear:
If column does not exist within specified table, no drop will be generated. If column does not have a default constraint, no drop for this constraint will be generated.</description><dc:creator>Victor Zakharov</dc:creator><category>devops</category><category>software</category><category>sql</category></item><item><title>List all valid email addresses in Exchange 2007</title><link>/posts/2011-09-06-list-all-valid-emails-exchange-2007/</link><pubDate>Tue, 06 Sep 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 01 Mar 2020 15:54:30 -0500</atom:modified><guid>/posts/2011-09-06-list-all-valid-emails-exchange-2007/</guid><description>You may need these to configure your 3rd party antispam software/appliance.
There were lots of articles on the internet with complicated solutions, which did not work for me. Here a Powershell one-liner for Exchange management shell:
1 Get-Mailbox | foreach { $_.EmailAddresses | foreach { $_.SmtpAddress } } Within regular Powershell, add this line at the very start:
1 Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin If you plan to run it as a batch job, the whole script could look like the following:</description><dc:creator>Victor Zakharov</dc:creator><category>devops</category><category>software</category><category>exchange</category></item><item><title>Exchange - disable offline folders with non-cached mode</title><link>/posts/2011-08-22-exchange-disable-offline-folders-no-cache/</link><pubDate>Mon, 22 Aug 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 01 Mar 2020 15:59:28 -0500</atom:modified><guid>/posts/2011-08-22-exchange-disable-offline-folders-no-cache/</guid><description>Having read some useful topics on the internet, I decided to try non-cached Exchange mode in Outlook.
After disabling caching for my account, it still kept the OST file, even after forced deletion.
Then I noticed some offline folders were being kept, like Inbox and Sent Items (right click -&amp;gt; Synchronization tab -&amp;gt; Offline folder contains&amp;hellip;).
When those were emptied, there was still something left in that OST file (&amp;lt;20MB). This is how you can disable offline folders altogether.</description><dc:creator>Victor Zakharov</dc:creator><category>devops</category><category>software</category><category>exchange</category></item><item><title>Windows firewall authorization failed to start</title><link>/posts/2011-08-10-windows-firewall-auth-failed-to-start/</link><pubDate>Wed, 10 Aug 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 01 Mar 2020 16:02:16 -0500</atom:modified><guid>/posts/2011-08-10-windows-firewall-auth-failed-to-start/</guid><description>Alright, I struggled to make it work for a total of 5 hours. The original issue was that Firewall could not start because of error 1068 - some dependency failed to start. The symptoms: outgoing connections work, incoming are blocked. I drilled down to Windows Firewall Authorization Driver malfunction.
Tried just about every advice out there on the internet - nothing worked. Having gathered enough frustration, I thought it would not hurt to uninstall this crappy thing from Device Manager.</description><dc:creator>Victor Zakharov</dc:creator><category>devops</category><category>windows</category><category>firewall</category></item><item><title>Driver letter not available for mapping</title><link>/posts/2011-08-09-drive-letter-not-available-for-mapping/</link><pubDate>Tue, 09 Aug 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 01 Mar 2020 16:04:40 -0500</atom:modified><guid>/posts/2011-08-09-drive-letter-not-available-for-mapping/</guid><description>Somehow my Windows 7 partially remapped a drive letter to another entity. It happened suddenly with some unexpected behavior. I noticed it when it could no longer connect to a network share. I removed the mapping and tried recreating with no success. The drive could not be deleted. Restarted, the drive is not mapped, yet it&amp;rsquo;s still not available. Started googling and came across this forum discussion.
The problem is related to non-active drives still reserving a letter.</description><dc:creator>Victor Zakharov</dc:creator><category>devops</category><category>windows</category></item><item><title>PHPBB3 - Customizing templates (Prosilver)</title><link>/posts/2011-07-26-phpbb3-customizing-templates-prosilver/</link><pubDate>Tue, 26 Jul 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 29 Mar 2020 19:47:31 -0400</atom:modified><guid>/posts/2011-07-26-phpbb3-customizing-templates-prosilver/</guid><description>I recently had some experience changing default prosilver template in PHPBB3. It was not as simple as I expected it to be. Well, I figured the path styles\prosilver\template\ and html file name to change, but it took me a while to understand why pages were not refreshing.
The answer was in the root folder - cache, that needed to be cleared, so that it reloads from template. I think it&amp;rsquo;s not the best approach as it should have been marked dirty instead and reloaded on the next page request.</description><dc:creator>Victor Zakharov</dc:creator><category>phpbb</category><category>forum</category></item><item><title>Power consumption of Acer 1810T notebook</title><link>/posts/2011-06-02-power-consumption-acer-1810t-notebook/</link><pubDate>Thu, 02 Jun 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 24 Oct 2020 12:47:11 -0400</atom:modified><guid>/posts/2011-06-02-power-consumption-acer-1810t-notebook/</guid><description>I recently did power consumption test for my Acer 1810T, which I bought a year ago.
OS desktop is Windows 7 Home + Aero enabled.
I used Kill-A-Watt power meter.
The Numbers Off and charging: 21W
Idle at desktop + charging: 29W
Idle at desktop: 10-11W
Half load (one core): 16W
Full load: 22-23W</description><dc:creator>Victor Zakharov</dc:creator><category>acer</category><category>notebook</category><category>benchmark</category></item><item><title>.NET parallel for - how good is it?</title><link>/posts/2011-05-17-dotnet-parallel-for-how-good-is-it/</link><pubDate>Tue, 17 May 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sat, 24 Oct 2020 12:47:11 -0400</atom:modified><guid>/posts/2011-05-17-dotnet-parallel-for-how-good-is-it/</guid><description>I recently had a Microsoft workshop session and became excited about parallel for/foreach/etc.
There we got a solid 60% of efficiency. It means that whenever number of cores increases by 2x, performance is boosted by 1.6x.
I became curious about it, and created a test project to verify the fact for myself.
Here are the results I got on subsequent runs (time in milliseconds + efficiency):
I even got 96% on some early build, which did not show that information clearly (hence, no screenshot).</description><dc:creator>Victor Zakharov</dc:creator><category>dotnet</category><category>benchmark</category></item><item><title>VB.NET - Compare strings - case sensitivity issues</title><link>/posts/2011-04-21-vbnet-compare-strings-case-sensitivity/</link><pubDate>Thu, 21 Apr 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 29 Mar 2020 19:47:31 -0400</atom:modified><guid>/posts/2011-04-21-vbnet-compare-strings-case-sensitivity/</guid><description>I recently stumbled upon this problem in one of our company .NET projects.
For some reason, project settings there were configured for Text comparison, rather than Binary.
As a result, lower case strings were equal to upper case, which was discovered later when some bug in UI occured.
There were three solutions available:
Switch default comparison type on the project level. Go to Project / Properties / Option Compare -&amp;gt; Binary.</description><dc:creator>Victor Zakharov</dc:creator><category>dotnet</category><category>vbnet</category></item><item><title>My experience with TekSavvy Extreme Cable</title><link>/posts/2011-04-02-teksavvy-extreme-cable-experience/</link><pubDate>Sat, 02 Apr 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 29 Mar 2020 19:47:31 -0400</atom:modified><guid>/posts/2011-04-02-teksavvy-extreme-cable-experience/</guid><description>This is what I was able to dig up from my emails and memory. Something might be missing from the chain, but overall should be enough to connect the dots.
Activation I completed the sign-up to Teksavvy Cable Extreme on 19-02-2011, using their modem SB6120.
Receipt email came on 21-02-2011 for 199.90 CAD (cost of modem - discount for buying modem from them + shipping + activation fee + 1 month of the service + taxes).</description><dc:creator>Victor Zakharov</dc:creator><category>teksavvy</category><category>internet</category><category>hardware</category></item><item><title>WMI query - Incorrect class on Windows 2003 R2?</title><link>/posts/2011-03-22-wmi-query-incorrect-class-win-2003-r2/</link><pubDate>Tue, 22 Mar 2011 00:00:00 +0000</pubDate><author>neolisk@gmail.com (Victor Zakharov)</author><atom:modified>Sun, 29 Mar 2020 19:47:31 -0400</atom:modified><guid>/posts/2011-03-22-wmi-query-incorrect-class-win-2003-r2/</guid><description>I got this &amp;lsquo;Invalid class&amp;rsquo; error when querying disk performance data:
Win32_PerfFormattedData_PerfDisk_LogicalDisk
The server was running Windows 2003 R2 Std x64 SP2, so I used this article to &amp;lsquo;detect and repair a corrupted WMI Repository&amp;rsquo;:
rundll32 wbemupgd, RepairWMISetup Well, it did not work for some reason. A little more googling led me to a blog, where Mike (the author) suggested two additional actions:
First
winmgmt /resyncperf Then
winmgmt /clearadap Just executing (1) did not solve the problem for me, while doing (2) after that worked perfectly.</description><dc:creator>Victor Zakharov</dc:creator><category>wmi</category><category>windows</category><category>devops</category></item></channel></rss>