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…
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…
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…
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…
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…
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 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…
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…
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…
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…
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…
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…
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…
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…
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):
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…
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…
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…
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…
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…
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…
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…
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…
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:
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…
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…
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…
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,…
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…
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…
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…
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…
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,…
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…
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 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…
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.
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.
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…
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…
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…
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
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…
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")…
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)…
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…
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…
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…
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
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 .