GPG keys are no longer shared with development containers on Windows by default

16 February 2024

If you are into the habit of signing your Git commits, the configuration on Windows has always been pretty straightforward: install Gpg4win, set up your keys in the graphical interface and you’re pretty much done. And sharing those keys inside a development container with Visual Studio Code was even easier: nothing to do!

read more

DoH must be set up for HTTPS navigation in private networks

04 February 2024

I love computers. I always have. And as a professional developer I always was a little bit jealous of my fellow systems administrators who were in charge of dozens of servers and desktops (and sometimes much more). Active Directory was a misterious world where seemed to lie an unreachable and absolute power. So of course, as soon a I could I set up a decent homelab for myself: DIY servers, NAS, 10Gb network, Hyper-V VMs, Active Directory… I also plunged into the wild world of domotics, starting with Domoticz and slowly migrating to Home Assistant.

read more

apt commands fail (Connection timed out) in Debian based containers on Windows

03 February 2024

The last few years have given me several opportunities to discover the Ruby language, and its ecosystem. I am very much a .NET guy, and I had wondered for a long time what the hype was all about. Now I can see how it inspired many modern platforms (like node.js or .NET Core), but boy is the operations side of it hard! I am maintaining this very blog on GitHub Pages, which is based on Jekyll, and even a simple usage like this requires a development container. Especially as a Windows guy, although managing Ruby dependencies on Linux is a...

read more

Continuous Integration for .NET (Core)

28 January 2021

A lot of work has been made in the last few years (almost 5 now) to revamp the whole .NET Platform and lead it confidently into this new decade. Going through .NET Core, .NET is now free, open-source and multiplatform. Sign of the times, the console addicts can now take advantage of the .NET CLI while everyone can enjoy the still evolving best parts of the eco-system: the C# language and MSBuild (amongst other things). So now is a good opportunity as ever to revisit my practices of Continuous Integration for the .NET Framework as well.

read more

How to host pgAdmin 4 on Windows Server

03 January 2021

I just set out to create a PostgreSQL database server in my home lab, that I intend to use first with Home Assistant. And just because this is my home lab, it is hosted in a Windows Server 2019 VM in Hyper-V. 😁 I then foolishly installed pgAdmin 4 on my computer with the intention to remotely manage this new server… I remember pgAdmin III as such a slick application with an installer weighing less than 15MB. 4 years later the pgAdmin 4 installer is 10 times bigger, a Flask application that runs in the browser (these are the times...

read more

Continuous Integration for Java

05 October 2020

From what I understand Gradle or even Maven are the way to go for your build in Java. They seem to rely heavily on conventions, which is good. But if you need (or want) to add to these conventions (like I do with my practices) it seems that the only 2 ways are to either build your own plugins or to execute additional Apache Ant tasks and targets inside your build. So it seems to me that the good old Apache Ant is still alive and well.

read more

Continuous Integration for PHP

28 September 2020

It has been a very long time since I have used PHP in any capacity for web development. And I am not planning doing so again any time soon (sorry). But I have had the opportunity to apply my practices on a very small, though still useful scale in PHP. From what I could gather it is indeed very possible to properly and continuously integrate PHP projects, provided you use the right tools for the job: a build tool and a dependency manager (optional but always recommended).

read more

Continuous Integration for Ruby

21 September 2020

I have had to deal with a few projects in Ruby recently and I have tried to adapt my practices to this new environment. On a personal level this means less cognitive load when I have to come back to these projects months later, even more so because Ruby is far from my area of expertise. As it happens I have had quite some trouble implementing Continuous Integration because of (seemingly) conflicting conventions. But I have tried anyway:

read more

Continuous Integration for node.js

14 September 2020

Applying the same principles to node.js is interesting because this is an entirely different world from .NET (for the best and for the worst): Javascript is interpreted: there is no compiler and no inherent notion of packaging. the platform is very fragmented: even the package manager seems to be up for grabs (stigmergy, anyone?).

read more

Continuous Integration for the .NET Framework

07 September 2020

I realize writing this post that I have been practicing .NET development (C# in particular) since 2005 (15 years!). It is natural for my Continuous Integration practices to have been heavily influenced by this platform during all this time. The advent of .NET Core will be the occasion to revisit these, and also the subject of another blog post. This post shows what those years of maturation led to on the (soon legacy) .NET Framework platform.

read more

My take on Continuous Integration

02 September 2020

The essentials of Continuous Integration (CI) have been summarized by Martin Fowler. Following is my take on a few principles, practices and/or considerations that have served me well over the years.

read more

What is Continuous Integration?

30 August 2020

Everybody does Continuous Integration (CI) nowadays, right? Right? Right…

read more

TIL how to make MacOS behave on network shares

10 May 2020

How do you know there is a MacOS user amongst your colleagues? That has to be when you start to realize that half your folders in your network shares are gifted with a pesky .DS_Store file. Those files can even spread to your repositories by the way… All it takes is 1 single person to create a lot of nuisance for everyone else.

read more

Install node.js on a Windows Azure Cloud Service (II)

10 May 2013

Last time I showed you how to modify a node.js Windows installer so that you could install it on an Azure Cloud Service as part of a startup task.

read more

Install node.js on a Windows Azure Cloud Service

05 March 2013

node.js is supported by default on a Windows Azure WebSite. But there are cases when you might need to deploy an application on an heavier (and more expensive) Cloud Service. Such a case is when you need SSL on a custom domain, as Azure WebSites do not yet support custom certificates.

read more

Beware the Image object!

18 September 2009

One requirement on the project I am working on (.NET 2.0, Windows Forms) was to make the end-user able to load a background image to an InkPicture (which is just a special PictureBox control, with the ability to be drawn upon on a TabletPC). That did not seem very difficult at first: just create an OpenFileDialog and there you go.

read more

Encrypt configuration file in a custom managed action on x64

15 May 2009

When I install a .NET (or ASP .NET) application, I like to encrypt the sensitive parts of the configuration file like the connection strings. So I have been used to create a Custom Installer class to achieve this. There are a few tricky things to take into account, like: when your configuration is loaded by the installer, it should be able to resolve embedded dependencies (like Enterprise Library assemblies) even when they are not in the GAC. this class accepts a EXEPATH parameter that contains the path of the application which application file is to be encrypted. It should then...

read more

Oracle Instant Client in Visual Studio

15 May 2009

In my previous post, I mentioned the fact that I added the Oracle Instant Client files as Content files in a Visual Studio project. I would like to write more about this here.

read more

Oracle (Not So) Instant Client

15 May 2009

Developing database oriented .NET applications is quite a no brainer once you are used to your API (ADO.NET, Enterprise Library Data Application Block…) or your ORM (NHibernate…). Just pick your database vendor ADO .NET provider, which usually consists of one assembly that you distribute with your application, and that’s it. That is how it works with SQL Server (of course), but also Teradata, MySQL, PostgreSQL, SQLite… You name it, that is the way it works.

read more

How to install Oslo with SQL Server Express Edition?

29 October 2008

As I was delving into the Visual Studio DSL Tools to design my first DSL for Salamanca, I came across this new modeling platform by Microsoft: Oslo. In fact, it is so new that the first CTP has just been released.

read more

Missing

05 June 2008

I got stuck with this error message yesterday: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater

read more

About Visual Studio, SSIS and DSLs

20 February 2008

I have had the opportunity to discover Sql Server 2005 Integration Services (SSIS) lately. That was a double blow. At first, I found it highly usable, though rough on the edges: still only a very promising tool. And then I found it was the perfect example of a software factory created with the Visual Studio Domain-Specific Language Tools. It is great to see Microsoft eating its own dog food, and create a great tool with it.

read more

HowTo: Log DDL events in your Oracle database

12 February 2008

Update (30/10/2008): trigger code updated, due to a bug pointed out by Michel in the comments.

read more

Software that works

30 November 2007

I hate software that works. Deeply. From the bottom of my heart and soul. Let me try to explain why.

read more

Getting better

30 November 2007

I have had to spend the last few months of my life without… a life! Not that I had much of one before that, but this is not the point. We had this client we had signed a contract with in June for what we all believed to be a small project, due to be released in September. And we only managed to deliver our release last week : a web application (ASP .NET, C# 2.0, Oracle 10g) targeting IIS 6.0 on Windows Server 2003 and a desktop application (Forms, C# 2.0, Oracle 10g) on Windows XP Tablet PC Edition...

read more

My IDE is hot

27 July 2007

I know I am a bit late to join this debate, but: I was new at my job at the time. After a few years spent in a few french companies, I was obviously not quite used to the internet as it had become since I left college, and I must admit I was as close as could be to miss the web 2.0 buzz. This blog was a longshot then. July has only 3 full days left, and I realize it looks like my last oppurtunity to post something this month… After I had this casual conversation with our...

read more

Software Factory vs Usine Logicielle

20 April 2007

Software Factory is a term that has been very closely related to Microsoft, ever since the company began promoting it. In this two pages advertisement (June 2004), you can read: A software factory is a product line that configures extensible development tools like Microsoft Visual Studio Team System (VSTS) with packaged content and guidance, carefully designed for building specific kinds of applications.

read more

VS2005 SP1 is suckin' up your drive

13 February 2007

Remember this old song about Windows 95? Softwares on Windows have always been demanding on hard disks, and it seems that disk capacity will never be enough. As mine is quite fixed, I am doing my best to optimize disk usage.

read more

SQL Server 2005 Compact Edition released

17 January 2007

I have been playing around with SQLite, which is quite effective and impressive. There is even an ADO .NET Provider that embeds in the same assembly the native SQLite API, so that your single dependency is a 538Ko assembly for a fully functional self-contained database. For all this, you will not get support for distributed transactions though. That seems fair, but no exception is raised when you try to enlist a SQLite connection into such a transaction (unlike the MS Access OLE DB ADO .NET Provider for instance).

read more

Back (?) To Business

03 January 2007

As a new year resolution, I have freely decided to commit myself into blogging about software development. So let me start slowly and write about source code organization.

read more