RSSAmplifier

Blog

Ivan Zlatev

Writing about leadership, management, emotional resiliency, software engineering, tech, gadgets.

ivanz.comRSS feed ↗50 posts

Latest posts

How to disable the Sign in with Google pop-up across web sites

I’ve gotten tired of all those “Sign in with Google” pop-ups, especially the bad/overly aggressive implementations that do it in every new tab branch opened of the same page (looking at you TripAdvisor), so here is how to remove it. Steps for Web Install your favourite ad blocker (e.g. I use uBlock Origin ) Add the following custom rule and you are done: ||accounts.google.com/gsi/* Steps for…

13 Emotional Resilience Challenges in Engineering Leadership and Management + Tips

This is a rather long post as it captures the 13 days of lessons learnt and tips I’ve been sharing on LinkedIn . Definitely interested to hear other’s experiences and thoughts, so do drop me a comment below, if you feel like it. The content here is predominantly aimed at new managers and leaders as well as new managers of managers, but hopefully others can benefit too. 1. Feedback loops become…

MSpec (Machine Specifications) support for .csproj-based .NET Core projects now available

I am pleased to announce that it is now possible to use and run Mspec (Machine Specification) tests when using .csproj based .NET Standard / .NET Core projects including multi-targeting scenarios. The runner ( Machine.Specifications.Runner.VisualStudio nuget package) supports: dotnet test Visual Studio’s Test Explorer vstest.console Visual Studio Team Services and TFS For information on how to…

New features and improvements coming to C# in Visual Studio Code

Visual Studio Code is my editor of choice (even) for C#/.NET (unless I need to do some serious refactoring or software archeology exercise in the Visual Studio IDE with ReSharper). I’ve noticed a couple of opportunities for imporovements in the C# extension ( GitHub ) and a couple of merged pull requests all of the below updates are now available in the latest 1.4 beta of the C# extension and will…

Announcing Machine.Specifications (MSpec) 0.11 for .NET Core, .NET CLI and .NET Standard

I am delighted to announce that MSpec (Machine.Specifications) is now available for .NET Standard 1.3+ together with a new .NET CLI ( dotnet test ) test runner for .NET Core and .NET 4.5+. If you are not sure what MSpec is - scroll down for a quick intro. In short it’s a “context/specification” test framework. This is backwards compatible version, so there shouldn’t be any issues using this…

How does TypeScript discover type declarations and definitions for JavaScript code?

In this blog post I will cover how TypeScript discovers type declarations and the subtle differences in what they should look like depending on where they live. Edit: Note that Visual Studio IDE, Visual Studio Code and possibly other editors have built their TypeScript/JavaScript intellisense on top of the TypeScript language service (that is - TypeScript itself), so all of the below apply for…

Farewell project.json - hello MSBuild and .csproj (.NET Core)

Farewell project.json There was a fairly important update from Microsoft last week, which I personally felt went a bit under the cover. The .NET Core (and other teams) have decided to drop project.json and go back to MSBuild and *.csproj . This is not something that’s already happened in the just released .Net Core RC2 and ASP.NET Core RC2, but it’s happening. Wondering where that announcement was…

Machine.Specifications.Runner.VisualStudio 2.0.0-rc1 is out with many improvements

This is a significant update to the Test Adapter with substantial improvements on which I have been working over the past weeks. Get it here: https://github.com/machine-visualstudio/machine.vstestadapter/releases/tag/v2.0.0-rc1 New test discovery engine built directly on top of MSpec replaces old Mono.Cecil based one: Full support for [Behavior] and Behaves_like<> and everything MSpec Full support…

MSpec (Machine.Specifications) Visual Studio Adapter 1.7.0 released

In the last 2 weeks or so, I have given a helping hand to Jonathan Wilkins with the MSpec Visual Studio adapter project. My initial main focus was to get the adapter nuget ready, so that it can be used in Visual Studio Online (now Team Services) seamlessly. I have also set-up a CI environment in AppVeyor . If the udpated Visual Studio extensions is not live yet at the time you read this blog post…

CorrelatorSharp: Your one stop shop for context-aware logging and diagnostics

In the world of microservices and distributed systems it is very important to relate logging and diagnostic information of multiple services in the context of an operation to quickly diagnose issues. What is CorrelatorSharp? CorrelatorSharp is a .NET library that enables context-aware logging and correlation with no code changes or minimal such. CorrelatorSharp is async/await aware and the current…

MarketInvoice Roslyn Pack 0.1 released

Innovation Mondays at MarketInvoice At MarketInvoice we run “Innovation Mondays” on the first Monday of every Sprint (at the time of writing this post we are running two week sprints). It’s an opportunity for the Engineering team to hack on new ideas and projects, explore new technologies and learn new things either in groups or individually. We discuss our achievements, prototypes and findings in…

FluentMigrator Part 2/3: Continuous Integration and Testing with database migrations

In this series FluentMigrator Part 1/3: Creating and running our first database migration FluentMigrator Part 2/3: Continuous Integration and Testing with database migrations (this post) FluentMigrator Part 3/3: Continuous Delivery with database migrations Having created and ran our first database migration - in this post we are going to cover the following scenario: We want to write integration…

FluentMigrator Part 1/3: Creating and running our first database migration

In this series FluentMigrator Part 1/3: Creating and running our first database migration (this post) FluentMigrator Part 2/3: Continuous Integration and Testing with database migrations FluentMigrator Part 3/3: Continuous Delivery with database migrations In this post we are going to cover: What FluentMigrator is How to create a database migration How to run our database migration and then roll…

Using, configuring and distributing Roslyn analysers in teams

What are the Roslyn analysers? As you should already know Roslyn is the name of new C# 6.0 (and Visual Basic) compiler, written entirely in C# (and VB for the VB one). The old compiler was written in C++ and this is a complete re-implementation. You can find Roslyn’s source code on GitHub . However Roslyn is not just a compiler. It’s also and SDK (“.Net Compiler Platform”) which exposes the…

Use a PIN code instead of password on your Surface Pro (or other Windows touch device)

Here are step instruction on how to replace the Windows login password prompt with a PIN code, especially on those yummy new Windows tablets (I am looking at you Surface Pro 3):

MSpec TeamCity Parallel Runner &#8211; NuGet package change

Two quick updates: The mspec parallel test runner for TeamCity nuget package is now located at: https://www.nuget.org/packages/Machine.Specifications.TeamCityParallelRunner/ This change was required in order to start following the MSpec version numbers and package naming convention. The package version as of this moment is 0.9.0, which matches MSpec 0.9.0. If you know how to write a .nuspec which…

Announcing an MSpec Parallel Test Runner for TeamCity (mspec-teamcity-prunner)

MSpec is absolutely great – no argument about it. I am using it exclusively in a current project to specify and test top to bottom. However one thing that has been bugging me for a long time is the inability to run tests in parallel on TeamCity. Most Visual Studio tools support it (CodeRush, ReSharper, etc) – why shouldn’t it be possible to do it on the build server? And as test run time kept…

Traktor Pro .tsi file format reverse-engineered &#8211; docs on GitHub

I’ve reverse-engineered the .tsi binary file format specification, which Traktor Pro by Native Instruments uses to store its Controller Mappings. I am hoping this should open the gates to new power tooling for MIDI controller mapping power tools (Traktor’s own being rather sub-optimal). The project, documentation and instructions are here: https://github.com/ivanz/TraktorMappingFileFormat/wiki…

Guide for migrating an ASP.NET MVC Solution to .NET 4.5 and ASP.NET MVC 4

You can find a very handy step by step guide for migrating to ASP.NET MVC 4 here . It might seem a bit long, but actually with a few multi-file search and replace and some regex you can do it pretty quickly. I just wanted to add a few more tips: Migrating to ASP.NET MVC 4 If you are still using bin deployables (“Add Deployable Assembly”) for your current ASP.NET MVC setup – you should remove it…

Windows 8 Code Weekend: 8-9th September in London &#8211; dev4good

TheGivingLab.Org We’re running a second dev4good event in collaboration with TheGivingLab.org and Givey this year to bring together talented thinkers, designers and coders from around the UK to work on some real-world issues faced by UK charities. The technology theme for the event is Windows 8 , but no prior knowledge of Windows 8 app development is required. Microsoft will present Windows 8…

Heads up on a hidden breaking change in ASP.NET MVC 4

If you, like me, are using an Editor Template for DateTime and use the DataTypeAttribute with either or DataType.Date and DataType.DateTime in ASP.NET MVC 2 or 3 and happen to upgrade to ASP.NET MVC 4 be aware! ASP.NET MVC 4 introduces two new internal editor templates for properties marked as DataType.Date and DataType.DateTime to render HTML5 input types (date and datetime accordingly). The…

Disable archive instead of delete mail in Gmail on iPhone/iPad

For a long time the default and very painful behaviour between the integration of iOS devices (iPhone/iPad) and Gmail’s Exchange support (required for push email) has been that whenever you delete an email it will actually archive it instead (put it in the “All Mail” folder). Like me many people hated that and have been complaining for a long time on Google’s Forum, Groups and Feedback sites. I…

dev4good &#8211; Developing for a Better World

Last weekend (2-3 July) I attended the first ever dev4good – a charity hackathon where developers try to solve charity problems in a weekend. It took place in Hammersmith, London in a amazing venue on the riverside: Three charities came to use with the following problems: Hope and Play were looking for a way to locate and manage resources. And allow other charities or people to do the same. The…

Featured on the home page of ASP.NET

Really exciting for me is that a few days ago my series on Editing Variable Length Reorderable Collections in ASP.NET MVC got featured on the home page of the ASP.NET web site. I just wanted to say thank you to the person who decided to share it with the community. Here is a screenshot:

Editing Variable Length Reorderable Collections in ASP.NET MVC &#8211; Part 3: Knockout JS

In Part 1 of this series I discussed the problems that we face when implementing an editor for a variable length, reorderable collection and reuse our server-side ASP.NET MVC views, model binding and validation. In Part 2 of this series I began moving some aspects of the collection editing to the client-side with jQuery Templates, but we realized that it’s not good enough, because instead of…

Custom Knockout JS binding for jQuery UI Sortable

For the work in progress Part 3 of my Editing Variable Length Reorderable Collections in ASP.NET MVC blog series I have created a custom Knockout JS binding that keeps a Knockout JS observable array in sync with a jQuery UI sortable. It’s available here: Basic usage is to use a sortableList binding on the ul which you want to make a jQuery Sortable and then a sortableItem binding for each sortable…

Editing Variable Length Reorderable Collections in ASP.NET MVC – Part 2: jQuery Templates

In Part 1 of this series I discussed the problems that we face when implementing an editor for a variable length, reorderable collection and reuse our server-side ASP.NET MVC views, model binding and validation. And while the solution provided in Part 1 is nice and clean (and I personally use it in a few projects) one field for improvement in true Agile Blogging fashion is to find a way to remove…

Editing Variable Length Reorderable Collections in ASP.NET MVC &#8211; Part 1: ASP.NET MVC Views

Introduction I have decided to write a short series of blog posts on editing collections and more specifically variable length collections in ASP.NET MVC. I will take two different implementation approaches: In Part 1 I look at implementing collection editing by sticking to facilities provided to us by ASP.NET MVC such as views, partial views, editor templates, model binding, model validation,…

Java BDD with JBehave and Watij in Eclipse with JUnit

The purpose of this post is to explain how to write BDD acceptance tests in Java using the gherkin syntax, run those with JUnit and implement them using Web Browser automation. Before I begin let me assure you that I haven’t left the .NET church for the Java one and while I really don’t enjoy writing in Java and using Eclipse sometimes a man has to do what a man has to do. So yeah I spend an…

Triply: Day 11 Summary

11 days ago I posted the launch notice for Triply . The only other place where I publicized it was on the Foursquare Apps list here . It was very surprising for me that given no “advertisement”, no web design and very little features it managed for 11 days to score: 103 user accounts – 83 Foursquare and 22 Facebook 2226 actions performed around the site 651 visits 432 visitors 10 Twitter followers…

Client-Side XSLT Transformations with JavaScript

I bet you haven’t ever thought of doing XSLT transformations inside the Web Browser on the client-side, but anyway it’s absolutely possible (cross-browser) and it performs pretty well as well, which shouldn’t be a big surprise since the browser is optimized to work with markup. Real-life practical applications of this however I haven’t thought of yet, but possibly: Use XSLT to consume old…

Logging JavaScript Errors with ELMAH in ASP.NET MVC

One final piece of information I wanted to add to my last blog post about setting up ELMAH for ASP.NET MVC is how to log Client Side/JavaScript errors with ELMAH . To do that we need to: Because ELMAH works with exceptions we will need to define a *JavaScriptErrorException *to represent our client side errors in the logs: using System; namespace Triply.Extensions { [Serializable] public class…

ASP.NET MVC Magical Error Logging with ELMAH

If you aren’t using ELMAH (Error Logging Modules and Handlers) you should be – http://code.google.com/p/elmah/ It’s the best thing since sliced bread for logging ASP.NET errors with practically zero effort. It basically plugs into the ASP.NET pipeline and logs all unhandled exceptions thrown and HTTP error codes together with all sorts of other useful information such as request url, stacktrace,…

Triply now supports Facebook Places Checkins

I’ve just published online the support for Facebook Places Checkins in Triply . This means that now you can log in and work with checkins either from Foursquare or Facebook Places. What Triply really needs now is a good first pass web design, but I am not a web designer and don’t have cash to spend on web design right now, so I wonder what to do . After that I hope I can engage some people for…

Introducing Triply for Foursquare

During my trip to Dubrovnik last week whilst checking in on Foursquare an idea struck me – can’t I use the Foursquare checkin history and checkin comments to document the places I visit and also my route. This is how Triply was born after a two day hackathon. In a single sentence Triply lets you quickly create and share your trips, experiences and days out in three simple steps using your existing…

Storing Date and Time in UTC and the definition &#8220;Today&#8221;

Storing date and times in UTC on the server side is all nice and dandy, however there are a few gotchas, one of which the definition of “Today” when you a dealing with time zones. Say we are dealing with a system where a user can keep a history/log of all the food that he eats along with the date and time of when that happened. Current system times are: Current User Time (UTC+2): 4 April 01:45…

PicasaUploader 0.5.4 released

I have just released a new version of my PicasaWeb Uploader tool. This is a maintenance release to fix issues with large video uploads and to port to the new GData API.

Eclipse Colour Theme Extractor Tool

I have published my little tool that extracts just the Eclipse colour theme preferences out of the Eclipse exported preferences here . Usage is pretty simple – point it to an Eclipse preferences file and it will spit out the theme, which you can the import into your workspace without importing any other settings.

Custom model binding using IModelBinder in ASP.NET MVC &#8211; two gotchas

There are a few blog posts around the web regarding ASP.NET MVC custom model binding, but there are two key pieces of information missing. Just a quick intro – to implement custom model binding in ASP.NET MVC we need to implement the IModelBinder interface: public interface IModelBinder { object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext); } For the sake of…

How to import a database schema into SQL Server Express with Visual Studio

Today I needed to import my SQL Server schema into a SQL Server Express instance on a different machine. I only have Visual Studio on this machine and no SQL Server Management Studio installed, so it took me a bit to figure out how to import the schema, so here it goes. Add the SQL Server Express instance to the Server Explorer. It’s located at “.\SQLEXPRESS”. Open the T-SQL database schema. It…

PicasaUploader 0.5: Upload videos

I have released version 0.5 of PicasaUploader – the simple PicasaWeb uploader tool. Changes: Add support for uploading videos. Supported files are: .avi, .mpeg, .mpg, .wmv, .3gp, .asf, .mp4, .mov. However PicasaWeb can still reject any of those if it doesn’t like it. Note also that videos won’t be playable in the album immediately because they have to be postprocessed by PicasaWeb. File size…

IBM

I started at IBM UK (Hursley Labs) on Monday but it is only today that I got my permanent badge with all the security clearance added for the ultra confidential work I will be doing. 😀 One of the goodies when working in the restricted area is that only the chosen ones get access to the proper coffee machine which makes excellent espresso coffee only 10p each. IBM

Three new featurelets for Fluent NHibernate

Lately I have been using Fluent NHibernate and NHibernate respectively for my ORM (Object-Relational Mapping) when working on my top secret pet project. Simply put – it’s great. Mapping is done using a fluent C# interface which makes use of lambda expressions for referencing properties instead of strings (check my previous post for more info) so the domain model is safe to refactor because the…

How to avoid passing property names as strings using C# 3.0 Expression Trees

Referencing property names via strings is evil. Consider this simplistic example: private int _myProperty; public int MyProperty { get { return _myProperty; } set { _myProperty = value; NotifyPropertyChanged (this, "MyProperty") } } // Somewhere in a different project or file... private void NotifyPropertyChanged (object sender, string propertyName) { if (propertyName == "MyProperty")…

HowTo Disable the Unsigned Security Warnings on Windows Mobile

The security warnings when deploying unsigned applications from Visual Studio to a real Windows Mobile device can get very annoying. Thankfully they can be disabled with a hack and here is how. Using the Remote Registry Editor supplied with Visual Studio and with the Windows Mobile SDK installed change the following key value from 0 to 1 (and vise-versa to reset the change)…

msysGit Tip: Files Constantly Reported as Modified Fix

I copied my Mono mcs Git working copy from Linux to Windows for use with MSysGit only to find out that even after git reset –hard almost all files were being reported as modified by git status . It turns out it has to do with the file permissions (executable bit I think) and the inability of msysgit to apply them on Windows. $ git diff class/Accessibility/makefile.build diff --git…

Multiple Network Connections at the Same Time on Windows

In my scenario I have one Wireless connection for my Internet and one LAN connection to a small private network of my own with my NAS, PS3 and TV and I want to have them both at the same time. It was a major pain to get this setup working on Windows. When I had both connections enabled my Internet wasn’t working because Windows was routing through the LAN connection even though the Wireless…

Visual Studio 2008 jQuery IntelliSense Fix

I am tinkering with ASP.NET MVC and jQuery and making my first baby steps in a whole new horrible world of web development. I found out that the JavaScript IntelliSense in Visual Studio 2008 is broken out of the box. The error is: Warning 2 Error updating JScript IntelliSense: jquery-1.3.2.js: Object doesn't support this property or method @ 2173:1 The fix for Visual Studio 2008 SP1 by Microsoft…

PicasaUploader 0.3: Batch Image Scaling/Resizing

I have just released version 0.3 of my PicasaWeb Uploader tool. The new things are: High quality batch image resizing/scaling on the fly prior to upload. Memory usage performance improvements. Get it from (and also for more information): http://i- nz.net/projects/picasauploader </p> </a> Photo Resize

PicasaUploader 0.2: A simple upload tool for PicasaWeb

I have just released version 0.2 of my PicasaWeb Uploader tool. The new things are “ Send To ” right-click integration on Windows and username/password saving. Get it from (and also for more information): http://ivanz.com/projects/picasauploader .