Disclaimer: this is an automatic aggregator which pulls feeds and comments from many blogs of contributors that have contributed to the Mono project. The contents of these blog entries do not necessarily reflect Xamarin's position.

May 18

Happy 20th Anniversary, Npgsql!


    Happy 20th Anniversary, Npgsql!


   It seems like yesterday when I decided to start Npgsql. And today, Npgsql completes 20 years since the first public beta release!

    On May 18th, 2002, this is what was written in the first release notes of Npgsql  version 0.1:


    First Npgsql beta release.
    In this version there is a limited functionality. It is only possible to connect and disconnect from server.
    Only clear text authentication is supported right now.
    To compile you can use the SharpDevelop to open the Combine file (Npgsql.cmbx) or
type at command console: csc /t:library /out:Npgsql.dll NpgsqlConnection.cs AssemblyInfo.cs NpgsqlException.cs
This will create the file Npgsql.dll that can be copied to the application directory.

    I will be working in the Command functionality now.
    Play with it and send your bugs and comments :)


    It's been a long journey since then. And what a journey!! :)

    It all started when I decided to contribute to the open source community after so much time learning from it.

    At the time, ( year 2002 ), .Net was in its infancy but it looked very promising. Then I decided to create this new project in C#.

    As I wanted to play with network protocols and I also enjoyed working with databases, I started to check if there were .Net Data Providers for some open source database servers.  I ended up picking Postgresql because the communication protocol was very well documented.

    To me, this project is the most important contribution I have ever made to the opensource community. I'm very proud of it! :)

    I'm specially happy because since the beginning, Npgsql is like a reference in the .Net world when talking about connecting to Postgresql.

    Of course, all this wouldn't be possible without the help of a lot of people. I'd like to thank everybody who helped to make Npgsql the success it is today! 

    Thank you!

    Here is a list ( I know it is far from complete, sorry if I missed your name ) of some persons who helped Npgsql to be what it is today: ( I took most of this list from Npgsql1 repository ):

    So, that's it. I just wanted to create a special post for this day!

    Thank you all for reading this far. I'll make some other posts talking about Npgsql history.

April 07

06 Apr 2022

SwiftTermApp: SSH Client for iOS

For the past couple of years, programming in Swift has been a guilty pleasure of mine - I would sneak out after getting the kids to sleep to try out the latest innovations in iOS, such as SwiftUI and RealityKit. I have decided to ship a complete app based on this work, and I put together an SSH client for iOS and iPadOS using my terminal emulator, which I call “SwiftTermApp.”

What it lacks in terms of an original name, it makes up for by having solid fundamentals in place: a comprehensive terminal emulator with all the features you expect from a modern terminal emulator, good support for international input and output, tasteful use of libssh2, keyboard accessories for your Unix needs, storing your secrets in the iOS keychain, extensive compatibility tests, an embrace of the latest and greatest iOS APIs I could find, and is fuzzed and profiled routinely to ensure a solid foundation.

While I am generally pleased with the application for personal use, my goal is to make this app generally valuable to users that routinely use SSH to connect to remote hosts - and nothing brings more clarity to a product than a user’s feedback.

I would love for you to try this app and help me identify opportunities and additional features for it. These are some potential improvements to the app, and I could use your help prioritizing them:

To reduce my development time and maximize my joy, I built this app with SwiftUI and the latest features from Swift and iOS, so it won't work on older versions of iOS. In particular, I am pretty happy with what Swift async enabled me to do, which I hope to blog about soon.

SwiftTermApp is part of a collection of open-source code built around the Unix command line that I have been authoring on and off for the past 15 years. First in C#, now also in Swift. If you are interested in some of the other libraries, check out my UI toolkits for console applications (gui.cs for C#, and TermKit for Swift) and my xterm/vt100 emulator libraries (XtermSharp for C# and SwiftTerm for Swift). I previously wrote about how they came to be.

Update: Join the discussion

For later:

For a few months during the development of the SwiftTerm library, I worked to ensure great compatibility with other terminal emulators using the esctest and vttest. I put my MacPro to good use during the evenings to run the Swift fuzzer and tracked down countless bugs and denial of service errors, used Instruments religiously to improve the performance of the terminal emulator and ensured a good test suite to prevent regressions.

Original intro: For the past few years, I have been hacking on assorted terminal tools in both C# and Swift, including a couple of UI toolkits for console applications (gui.cs for C#, and TermKit for Swift) and xterm/vt100 emulators (XtermSharp for C# and SwiftTerm for Swift). I previously wrote about how they came to be.

March 17

Virtual Worlds, Real People

Last week I gave a lab talk to my former research colleagues at the Mixed Reality Lab at the University of Nottingham about the work I’ve been doing since leaving the lab over 20 years ago. Rather than talk about technology I focussed on the lessons that todays efforts …

February 24

While tasked to create the easy button...

While tasked to create the Easy Button, I became a Morlock
that now has a steady diet of GenZ Elois.

I am currently writing a WPF GUI tool that will permit you to intake
any SQL Server Query (T-SQL) and will handle every resultset that it
outputs. Not to display the tabular data in the output, but rather,
the DataTable schemas of that output. Then, generate C# Model
classes (*.cs files) – and hopefully, will also end up code
generating simple ADO.NET Interfaces with implementations as
Repository classes that are tailored made for consuming the original

The project is coming along quite nicely, but as I was about to
continue doing the required pending tasks, I came across a
fascinating article and matching Podcast, that just simply blew my
mind, and has me rethinking the meaning of my life, as well as the
direction I thought I needed to continue.

Seriously, this is some Time
Eloi (Generation
) vs. Morlocks (maybe Boomers?)
kind of dystopian future that I thought would not come about until
the year AD 802,701. Well, it is a good thing (I guess) that it is
here now, being how World War III is maybe upon us, along with
catastrophic climate change, pandemics, and Sharknado, we may need to
have this H.G. Wells vision materialize NOW.

Do check the article, as well as the Podcast:


Monologue is a window into the world, work, and lives of the community members and developers that make up the Mono Project, which is a free cross-platform development environment used primarily on Linux.

If you would rather follow Monologue using a newsreader, we provide the following feed:

RSS 2.0 Feed

Monologue is powered by Mono and the Monologue software.