SOLID principles: the Single Responsibility Principle

If you are a programmer, you may have heard of the SOLID principles. This acronym, among others like TDD, DI, etc.  is unfortunately more and more used as buzzwords. It is not rare to hear a candidate quoting the definition of the SOLID principles in a technical interview: single responsibility, dependency inversion… However, the most interesting part may be how to effectively use them everyday.

Continue reading “SOLID principles: the Single Responsibility Principle”

ServerPilot for your PHP development environment

ServerPilot is a cloud hosting control panel designed to be simple, efficient and available as a service. It installs everything you need to run your PHP websites and web applications in a few minutes, with a production-ready configuration on your VPS or dedicated server. In my current company, we started using ServerPilot to host every PHP websites or web applications of our clients.

My co-workers and I encountered some issues with our development environments. Some of us were using the default LAMP stack provided by apt-get, while others used a compiled version of it. In both cases, it wasn’t that optimized and we often had to deal with configuration, permissions or e-mail delivery errors.

Now, we all use the same environment on our production, staging and development environments, thanks to ServerPilot. Continue reading “ServerPilot for your PHP development environment”

Pillar, a MVVM framework for Xamarin Forms

Pillar logoI’m proud to annonce the release of Pillar, a lightweight MVVM framework for Xamarin.Forms 1.x and 2.x. With this framework, you won’t have to deal with page navigation or messed up code-behind anymore. Now, it’s all about view models, and navigation between view models. It rely on Autofac for dependency injection and MvvmLight for basic MVVM features and helper classes.

Features included in Pillar:

  • ViewModel navigation, you won’t need to manipulate pages in your view models
  • Design your apps with unit testing in mind with dependency injection
  • Flexible, you can use differents patterns: ViewModel first, Messaging, ViewModelLocator
  • EventToCommand behavior and useful converters included
  • Useful views: ItemsView repeater, with optional DataTemplate selector by item type
  • Not intrusive, you can reuse your view models in other projects (WPF for example) with very few modifications

Getting started

You can install Pillar with the Nuget package manager:

Install-Package Askaiser.Mobile.Pillar

You will find the documentation and samples on the GitHub repository. Continue reading “Pillar, a MVVM framework for Xamarin Forms”

ASP.NET Core with Nginx as reverse proxy on Linux

Being able to run ASP.NET web applications or web sites on Linux operating systems now is very cool. Before that, we had to use Mono, but it does’t support the full .NET framework or .NET technologies such as MVC or async support. Now, we have the .NET Core 5.0 (dnxcore50), and we can run our cross-platform ASP.NET Core web apps with the same new web server, Kestrel. Kestrel is a web server based on libuv and works nicely. Therefore, there are a few things that discourage me using it in production as the main web server. I prefer to use a more popular web server, Nginx. I really like Nginx, it is the third most popular web server in the world, and it is often used as a reverse proxy, and this is exactly how I am going to use it with Kestrel. Continue reading “ASP.NET Core with Nginx as reverse proxy on Linux”

Google PageSpeed Insights, how to get 100/100

After many adjustments, I finally manage to score 100/100 on Google PageSpeed Insights. If you use WordPress, you will notice that the difficulty will depend on your current theme and installed plugins. In my case, I started with a score of 51 on mobile and 72 on desktop. In this post, I will present a summary of the steps I followed to get the best score on this tool. Continue reading “Google PageSpeed Insights, how to get 100/100”