Home About Eric Topics SourceGear

Selected Blog Posts

Thursday, 7 July 2022

Swift with Windows App SDK

Demos of my work toward a Swift projection for WinRT

Thursday, 4 November 2021

Trustworthiness is a feature

In which I hope that Microsoft really wants to be a company that loves developers

Tuesday, 21 September 2021

SourceGear Bridge preview: Swift with .NET in Xcode

A demo of a simple web app using Swift, ASP.NET Core 6, and Xcode

Monday, 26 July 2021

Alpaca Preview: Native Swift with ASP.NET Core

Alpaca is, er, Llama without Llama

Tuesday, 29 June 2021

Will deep understanding still be valuable?

Crabby old guy sees GitHub Copilot and says "get off my lawn", except with more words

Tuesday, 8 June 2021

Llama Preview: Swift with ASP.NET Core

Musing out loud about the possibilities of ASP.NET for server-side Swift

Wednesday, 28 April 2021

Llama Preview: Swift Closures and Delegates

Support for converting Swift closures into .NET delegates, with callAsFunction syntax

Monday, 19 April 2021

Llama Preview: Swift on .NET

I see the potential for Swift to feel like a good fit for .NET.

Wednesday, 10 March 2021

Calling .NET APIs from Rust

This is, without a doubt, the worst implementation of 'grep' I've ever heard of.

Tuesday, 23 February 2021

Llama Rust SDK preview 0.1.4

Fixing problems until an SVG rendering library kinda works

Tuesday, 9 February 2021

Llofty Ambitions

People would be more willing to adopt .NET if they could bring their favorite language with them.

Sunday, 31 January 2021

Llama Rust SDK preview 0.1.3

Progress on std. Still not ready for prime time.

Tuesday, 19 January 2021

Preview: The SQLite Llibrary as a .NET assembly

A preview release of SQLite compiled for .NET with Llama

Thursday, 8 October 2020

Llama preview 0.1.2

A dotnet tool for compiling an LLVM bitcode file into a dotnet assembly

Monday, 20 April 2020

SourceGear.Rust.NET preview 0.1.0

Don't even think about trying to use this for real work.

Tuesday, 10 March 2020

My exploration of Rust and .NET

A long yarn about some work I've been doing toward the ability to use Rust for .NET development.

Tuesday, 15 October 2019

.NET Core -- Choices

What happens when you reach the point where everything you want to do is too risky?

Wednesday, 2 October 2019

Xamarin.Forms: LayoutOptions

Things with LayoutOptions in Xamarin.Forms can get weird.

Monday, 16 September 2019

Xamarin.Forms: StackLayout vs Grid

An example from Xamarin.Forms of how choosing the path that is the most convenient for the developer can end up making things worse for the user.

Wednesday, 14 August 2019

Nullable references in C# 8.0

There are a few aspects of C# 8.0 nullable references that may seem surprising, but I like my compiler to complain about potential problems, so I am enthusiastic about using this feature more.

Tuesday, 2 July 2019

Using Span for high performance interop with unmanaged libraries

The challenges of interop with an unmanaged library that deals in zero-terminated strings

Monday, 24 June 2019

Dynamic loading of native code with .NET

My problem with DllImport is that the library name has to be hard-coded at compile time.

Tuesday, 30 April 2019

Exploring wasm2cil performance

Very early and very rough comparisons against wasmtime and native

Tuesday, 23 April 2019

Running WebAssembly and WASI with .NET

A project that can take a WebAssembly/WASI module and convert it into a .NET assembly on disk.

Wednesday, 10 April 2019

Bringing 12-year-old WPF code to .NET Core 3

This code was developed on .NET 2.0 with Visual Studio 2005, but it required only minimal effort to bring it into the modern age.

Tuesday, 9 April 2019

(Follow-up to) Attracting more developers to F#

Most of the feedback I received was positive, but not all of it, and I now see that my post had some minor problems, and a couple of major ones.

Friday, 5 April 2019

Attracting more developers to F#

The least effective way to promote F# adoption is the one that comes most naturally.

Monday, 25 March 2019

Building PepTown with .NET: App Overview

PepTown is our smartphone-based fundraising solution for high-school sports teams. The architecture of PepTown is .NET throughout. This blog entry is an overview of some of the choices we made when building the mobile app.

Tuesday, 19 March 2019

Non-idiomatic F#

I claim that writing non-functional F# works out WAY better than writing functional C#.

Wednesday, 15 June 2016

SQLite and Android N

The upcoming release of Android N is going to cause problems for many apps that use SQLite.

Monday, 8 June 2015

My initial experience with Rust

I wrote a bunch of Rust code. I liked it.

Monday, 5 January 2015

Why your F# evangelism isn't working

Yes, F# has a seven year head start, but Swift will cross the chasm first. This has nothing to do with the relative merits of these two languages. The simple fact is that C# is kinda great and Objective-C is kinda dreadful.

Monday, 14 May 2007


But right after a spec is written, a document is usually the wrong form. It started out as a document only because that form was most convenient for the author. But a document is not the most convenient form for the people who are reading or using the spec, and those people have the author outnumbered. Most of those readers/users want that spec to be a database instead of a document.

Friday, 11 November 2005

My life as a Code Economist

So why would an ISV ever intentionally release a product with known bugs?

Tuesday, 19 August 2003

Career Calculus

I submit that worrying about how others perceive your C value is a waste of time. The key to a great career is to focus on L, the first derivative of the equation. L is the rate at which your cluefulness is changing over time. The actual value of C at any given moment is usually a distraction. Only one question matters: With each day that goes by, are you getting more clueful, or less clueful? Or are you just stuck?

Tuesday, 15 April 2003

Memoirs From the Browser Wars

We sold our browser technology to 120 companies, but one of them slaughtered the other 119.