The project I currently work on involves a lot of Java/JavaScript (V8 JavaScript engine) interoperability. Fortunately, Java provides JNI and V8 has a nice C++ API which make the integration process very smooth. Most of the Java-JNI-V8 type marshaling is quite straightforward but there is one exception. The JNI uses modified UTF-8 strings to represent …
Author Archives: mslavchev
On Agile Practices
I have recently read the article What Agile Teams Think of Agile Principles from Laurie Williams and it got me thinking. The study conclusion is as follows: The authors of the Agile Manifesto and the original 12 principles spelled out the essence of the agile trend that has transformed the software industry over more than …
ECMAScript 262 And Browser Compatibility
I was curious to check how well the current browsers implement ECMAScript 262 specification. At the time of writing I have the following browsers installed on my machine: Google Chrome (34.0.1847.116 m) Microsoft IE (11.0.9600.17031 / 11.0.7) Mozilla Firefox (28.0) I guess Chrome, IE and Firefox present at least 90% of all desktop browsers. I …
JustMock Lite is now open source
A few weeks ago something important happened. I am very happy to say that JustMock Lite is now open source. You can find it on GitHub. In this post I would like to share some bits of history. JustMock was my first project at Telerik. It was created by a team of two. The managed …
Native code profiling with JustTrace
The latest JustTrace version (Q1 2014) has some neat features. It is now possible to profile unmanaged applications with JustTrace. In this post I am going to show you how easy it is to profile native applications with JustTrace. For the sake of simplicity I am going to profile notepad.exe editor as it is available …
Notes on Asynchronous I/O in .NET
Yesterday I worked on a pet project and I needed to read some large files in an asynchronous manner. The last time I had to solve similar problem was in the times of .NET v2.0 so I was familiar with FileStream constructors that have bool isAsync parameter and BeginRead/EndRead methods. This time, however, I decided …
501 Must-Write Programs
In the spirit of 501 Must-Visit… book series I decided to write this post. My ambitions are much smaller so don’t expect a comprehensive “guide” to computer programming. Nevertheless, I just think it would be useful to show you short programs that demonstrate important computer ideas and techniques. Fortunately, as software developers, we don’t need …
How to solve SOS/DAC mismatch
Have you ever experienced the following SOS/DAC mismatch error in WinDbg? Failed to load data access DLL, 0x80004005 Verify that 1) you have a recent build of the debugger (6.2.14 or newer) 2) the file mscordacwks.dll that matches your version of mscorwks.dll is in the version directory 3) or, if you are debugging a dump …
Introduction to JsRT
I recently started working on a new project and part of it is about embedding V8 JavaScript engine. So far, my experience with V8 is very good. The object model is nice and clean and although the lack of a good documentation it is easy to work with it. I strongly recommend using V8, but …
Declarative mocking
Mocking complements the test-driven development (TDD) allowing developers to write small and concise unit tests for components with external dependencies that would otherwise be hard or impossible to test. As the software becomes more and more distributed and loosely coupled, mocking becomes an intrinsic part of TDD process. While there are good tools and established …