RSSAmplifier

Blog

omervk.com

Recent content on omervk.com

/RSS feed ↗283 posts

Latest posts

Tackling Synology's Opaque "Invalid File Format" Error

A few months back I bought a new Synology NAS and decided to, on a whim, build an app for it from scratch. Partly to see how well Claude Code could handle it, mostly to see whether the option was open to me.
Starting off with the most basic app, the Python backend worked, the tests passed, the SPK archive assembled cleanly, but then Synology’s Package Center rejected it with the error…

DitherWorks

I got my parents a Waveshare PhotoPainter for their anniversary. I wanted the 7-color e-paper digital frame to show photos of the grandkids that rotate every 12hrs and are visible in sheer daylight. Bonus: year-long battery. 
 
 Challenge was it needed a specialized image format. 
 Now, I could use the provided Python script but it didn’t let me crop the images to the 800x480…

How to better understand business context as a StaffPlus engineer


 As senior individual contributors transition from focusing on the “what" aspect of their work to the “how” (such as deciding whether to perform the tasks themselves or to help others to do it), gaining an understanding of the wider organization and its roadmap becomes vital for achieving efficiency, productivity, and clarity in their roles. 
 This panel of experienced…

Becoming a more self-directing Staff+ individual contributor

I’ve spent the last five years of my career in Staff and Principal roles and have always hit a point where I feared inertia was taking over. 
 In my last two roles, I’ve found a way of refocusing the role that works for me, and LeadDev have kindly asked me to share it with the world. 
 I sincerely hope this helps more people. Please do let me know if it helped you. 
…

Making an Impact as a Senior Individual Contributor - Panel


 I was invited to discuss the role and evolution of the Individual Contributor track in the Software Engineering industry. 
 
 Hosted November 2022 at TechRadarCon'22

Tech Career Stories - Omer van Kloeten (Hebrew)

I sat with Aya Shani and Eitan Masuary to chat about my career journey.

A Fence, a Deviance and a Window

Imagine you’re joining a new role and see something that makes you go “wtaf did they think when they did this?!” - what’s the first thing you do? 
 If your answer is “change it,” then chances are you’re wrong. To explain why, let’s visit a fence, a deviance and a window. 
 As software engineers, our initial drive is to…

The Interviews We Don't Do @ BarvazGumi (Hebrew)

I talked to Vicky Kalmanovich about the kinds of skills we look for in software engineers and the interviews we don’t do that would test them.

Refactoring (and Observability) @ Reversim (Hebrew)

I talked to Ran Tavory and Ori Lahav about my philosophies around refactoring and observability.

Refactoring and Trust

Refactoring has many faces. 
 When you start out, 
 a fresh-faced developer, your only goal is to make your code Do The Thing. You forgot that semicolon or that loop was off-by-one and it took you the whole day to wade through those error messages to figure that stuff out and you’re on top of the world because you Fixed The Code and what do you mean change the code it WORKS NOW. 
 Some…

An episode about space @ NoTarbut (Hebrew)

I talked to Avi Etzioni and Gal Zellermayer about why open-plan offices should not be taken as the status quo.

We can see your ✳️✳️✳️✳️✳️ 🐱‍💻 @ CyberCyber (Hebrew)

I talked to Ido Kenan about my work on plaintextoffenders.com and bad password practices.

Deleting Tests with Types


 The less code in our systems, the better we are. Less to maintain, less to read, less to onboard.
In this live coding session, we’ll delete a lot of code… from our unit tests!* 
 [*] while keeping our confidence in the code 
 
 Presented March 2019 at the Ruby Underground meetup

Type Your Business


 A dog is an animal, orders have lines of products and quantity, and multiple employees (who are also people) can work for a company. Modeling our business domain is one of the first things we do when approaching a project. 
 In this session, we’ll discuss some static typing approaches to strengthen your domain model. 
 
 Presented October 2018 at the Scala.io Conference in France

Power Up Your Build


 These days sbt is the de-facto build tool for Scala, but most of us just write the minimum viable build.sbt file, import the libraries we need (and maybe throw in some sbt-assembly) and forget about it. 
 In this Good Practices session, you will learn about making your build safer and more robust by making the Scala compiler work for you and through using some sbt plugins. 
 This…

Mac Tips, Tricks and Utilities

I’m always looking for a way to get more out of my setup. In the past year, since moving from Windows to OSX, I’ve accumulated some knowledge and utilities I’d like to share…. 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context: This post was automatically imported from my old blog, which was…

Parallelized Streams in Scala – Not What You Thought

I had a Stream of data coming in from an input source and had to do some heavily-CPU bound work. The code looked like this:… 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context: This post was automatically imported from my old blog, which was originally hosted on Microsoft’s ASP.NET Community…

Unit Testing MySQL-Bound Code

I’m currently working on a product that is very tightly bound to MySQL. It’s so tightly coupled, in fact, that unit testing it while mocking the database access is meaningless. Unfortunately, accessing a MySQL database from the build server (or any machine) is not something that we can take for granted, not to mention concurrency (one person running the unit tests in parallel to another, messing…

When To Leave

I’ve been using Waze for a long time now and I love how it can predict very accurately how much time a drive somewhere would take. However, I didn’t like the fact that when I want to know when to leave one place to get to another, I had to keep re-opening the app and to check whether I would arrive on time if I left at that exact moment…. 
 You can read the copy of the original post ,…

Euler Project Problems 7-9 in Scala

This is my continuing series on using Project Euler to learn Scala…. 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context: This post was automatically imported from my old blog, which was originally hosted on Microsoft’s ASP.NET Community Blogs . When they shut it down, I dumped all of my old…

Euler Project Problems 4-6 (with 1 and 2 revisited) in Scala

This is my continuing series on using Project Euler to learn Scala…. 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context: This post was automatically imported from my old blog, which was originally hosted on Microsoft’s ASP.NET Community Blogs . When they shut it down, I dumped all of my old…

FUSE for HDFS

Working with HDFS has many benefits, but there’s one disadvantage that for me, at least, was very painful and that is that it doesn’t behave like other POSIX file system. If you want to access the filesystem, you have to use it via the hadoop -fs commands…. 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
…

Euler Project Problems 1-3 in Scala

As with when I learned Ruby, I find Project Euler to be an extremely useful way both to learn a language and its idioms and also flex my math muscles every once in a while. Since I’m starting to learn Scala, I decided to start answering the problems there again (the last time I got to 33) and thought I’d share what I came up with here…. 
 You can read the copy of the original post , or…

A Fresh Start

Since January 2010, I’ve been working at LivePerson, as a Senior Java Developer and ScrumMaster. It’s now time to move on – I will be joining … 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context: This post was automatically imported from my old blog, which was originally hosted on Microsoft’s…

The Anti-Social Network

(I’ve returned from my trip a few months ago, but didn’t have enough to blog about; hopefully, this is my returning to a semi-regular posting schedule; also, I’ve decided to veer off .NET in some of my posts, focusing on more issues that I like to talk about and offer my opinions on)… 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback…

Hiatus

In 15 days’ time, I’ll be taking off on a four months long trip around the world. I’ll be hiking and travelling my way through Japan (March-May), the United States of America (May-July) and the Netherlands (July). I’ve been planning this trip for a long time now, since I came back from Japan for the first time in August 2007 (the photo on the right was taken near the Tsurugaoka Hachiman-gu Shrine…

Circumventing the KB957543 .NET 3.5 SP1 Regression Bug

A couple of days ago I hit a regression bug in .NET 3.5 SP1, in which when you have a generic class that implements ISerializable and has static variables – you can not serialize it using a BinaryFormatter without your application either hanging (x86) or raising an exception (x64 – a TargetInvocationException containing an OutOfMemoryException). This only happens if you use a reference type as a…

Let SQL Server Tell You Which Indexes to Rebuild

When index fragmentation becomes too high, indexes will be very inefficient. Other than planning a good index design, you should rebuild / reorganize your indexes every once in a while…. 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context: This post was automatically imported from my old blog, which…

SQL Server Management Studio 2008 IntelliSense Doesn’t Recognize Special Characters

I just filed a new bug with Microsoft Connect. I certainly hope this one doesn’t get shrugged off like many of my other bugs did…. 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context: This post was automatically imported from my old blog, which was originally hosted on Microsoft’s ASP.NET…

Adobe AIR and Hebrew Fonts

(I’ve noticed quite a few people were having this problem, so I decided to blog about it. This might have to do with all non-English fonts, but I experienced it only with Hebrew)… 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context: This post was automatically imported from my old blog, which was…

MSBuild Script to Compress All JavaScript Files in a Project

I’ve got one project in my solution which has a lot of JavaScript files and they keep on coming. We’ve been using the YUI Compressor for quite a while and it’s proven an effective tool. After a lot of time of fiddling with the project’s MSBuild script, I came up with the following:… 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine…

Your Mouth Says Windows-1255, But Your Eyes Say ISO-8859-1

I recently wrote an engine that gets XML files stored at our clients’ servers using HTTP requests. One of our clients decided to serve the XML file with one encoding and encode the file itself with another. This posed a problem to XDocument…. 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context: This…

HTML to JavaScript HTML DOM Converter

One of our products demands converting quite a large amount of HTML to equivalent scripts, written in JavaScript that create said HTML. Looking around the Internet, I found no tool that will automate this process for me, so I went ahead and created this simple little application…. 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine…

The Death of System.DateTime?

It’s been a few months since I started getting acquainted with the System.DateTimeOffset type and I can honestly say I don’t see any reason to use System.DateTime anymore…. 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context: This post was automatically imported from my old blog, which was originally…

My View of C# 4.0

I’ve known a bit about C# 4.0 for a while now and have had time to think about it. I’ve just re-read the New features in C# 4.0 paper published by Microsoft and would like to offer the following critique of the language’s new features:… 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context: This post…

Microsoft Israel’s Developers’ Academy #3

Voting has been open for a few days now for which lectures will be featured at the next Microsoft Developers’ Academy. The event is the second most important event for Microsoft-platform-developers in Israel, surpassed only by the biennial Tech-Ed Israel…. 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
…

Visual Studio 2008 Load Testing Checklist

After a couple of days of trying to run a load test for a web service on several agents via Visual Studio 2008, I come out much wiser and with a few new bald-spots, where hair I pulled out in the process used to be…. 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context: This post was automatically…

Extending The Partial Classes of Stored Procedures’ Results in LINQ to SQL

One of the nice things about LINQ to SQL is the ability to extend the types of the generated entities. Another nice thing is being able to get typed results from stored procedures. Let’s try and combine the two together…. 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context: This post was…

Announcing New C# 4.0 LINQ Features and Book

* Fabrice Marguerie, co-author of LINQ In Action, asked me to clarify that this post has absolutely nothing to do with their book and is simply meant in jest *… 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context: This post was automatically imported from my old blog, which was originally hosted on…

Throw Before You Yield

In a comment left by Bart De Smet, he pointed out that I failed to address the fact that the execution of all “yielding” methods is deferred…. 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context: This post was automatically imported from my old blog, which was originally hosted on Microsoft’s…

MSDN Wiki?

I just love the fact that there’s a “Community Content” section to the MSDN documentation. I just found out that there’s an undocumented exception coming from the System.Net.Mail.MailMessage.Subject property, I browsed to the relevant MSDN page and simply added a line saying so…. 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback…

Pitfall: Static Field Inline Initialization Order of Execution

Here’s something I fell into today. You have a class that has some members that need to be calculated once. So you use static readonly fields. One of those members is a calculation of some of those members. Take the following code for instance:… 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy of it. 
 Context:…

Extension Methods Roundup: Intersect, Union, AsNullable and GroupEvery

Here we go with the third installment of the Extension Method Roundup. The reason behind these ‘code dumps’ is that LINQ is a central part of my coding and always find new problems I want to find elegant solutions to. Hope these prove as useful to you as they do to me…. 
 You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine ’s copy…

Asynchronously Preloaded LINQ Queries

As a rule of thumb, when presented with two independent blocking I/O operations on more than one independent devices, it’s best to use threads to create parallel operations, instead of waiting for a single synchronous operation to complete. That way, executing operations O1, &hellip;, On, each of which take T1, &hellip;, Tn will result in total time where T < T1 + &hellip; + Tn, instead of T = T1…

Extension Methods Roundup: Remove, Aggregate, At, AsIndexed and Friends

Hey hey hey! It’s time for another Extension Methods Roundup! Here are some of the extension methods I’ve written since the last one:&hellip; &#xA; You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine &rsquo;s copy of it. &#xA; Context: This post was automatically imported from my old blog, which was originally hosted on Microsoft&rsquo;s ASP.NET…

Breadth Recursion – a yield Solution to Post’s Correspondence Problem

Post’s Correspondence Problem (the other PCP) is a computer science problem, in which you have (and I simplify matters) a set of tiles, each having any number of letters on them from a preset group. For instance, you may have the tiles:&hellip; &#xA; You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine &rsquo;s copy of it. &#xA; Context: This post…

Mechsonomy: Machine Assisted Folksonomy

Yesterday, in front of the staff and students at my college, I presented my final project for my C.S. B.Sc.. Once I complete it and it gets reviewed this September, I will have completed my duties for the degree&hellip;. &#xA; You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine &rsquo;s copy of it. &#xA; Context: This post was automatically…

Quick Blurb: Test Tools Toolbar in Visual Studio and Useless Icons

Let’s play a little game. To the left of this text are the five central icons from the Test Tools Toolbar in Visual Studio. Their commands are, in an unordered manner: Test List Editor, Test Runs, Test View, Code Coverage Results and Test Results. Connect the icon to the appropriate command, without checking Visual Studio&hellip;. &#xA; You can read the copy of the original post , or if that goes…

LINQ Performance Pitfall – Deferred Execution

When using LINQ, queries may bloat up to dozens of lines. My personal style is to take these queries and break them apart to smaller units of logic. To each unit of logic, I append a call to ToArray. @yosit asked me why I did it and I answered I was avoiding a possible pitfall. Here’s what I meant&hellip;. &#xA; You can read the copy of the original post , or if that goes down too, you can try the…

SQL Server 2005 Analysis Services’s ADOMD.NET Connection Pooling, or Lack Thereof

First of all, if you’ve come here looking for how to activate connection pooling when using SSAS 2005 via ADOMD.NET, you’re in for a little surprise – there is none by design&hellip;. &#xA; You can read the copy of the original post , or if that goes down too, you can try the Wayback Machine &rsquo;s copy of it. &#xA; Context: This post was automatically imported from my old blog, which was…