Tales from the Evil Empire

Bertrand Le Roy's blog

  • 3D before GPUs Part 1: Dungeon Master

    In this series, I'll reverse-engineer algorithms from video games dating back to that time when the CPU was all you had. Today, we're looking at Dungeon Master, a fantastic game by FTL that set the gold standard for RPGs for the years to follow. It looked amazing, and still does to this day. It changed everything.

    Dungeon Master

  • LunrCore, a lightweight search library for .NET

    I'm pretty much convinced almost all applications need search. No matter what you're building, you'll likely handle data, and no matter how well you organize it, a good text search is often the fastest way for your users to find what they're looking for. As such, search should be a commodity, a feature that should be as easy as possible to integrate. I'm so convinced of that in fact that my day job is on Azure Cognitive Search, a Microsoft product that provides search as a service and makes indexing smart by adding a customizable pipeline of AI and machine learning enrichments.

  • Why I dislike tuple return types

    Tuples are great additions to C#. They're simple immutable structures made of a small number of members organized in a specific order. For example, a point on a plane could be represented as a pair of X and Y coordinates, or a person's name could be represented as a title, first, middle and last names. If the types are that simple, and have no custom logic associated with them, using a tuple looks like a lightweight and simple implementation that requires a lot less effort than a simple class or struct. Dynamic and functional languages have long enjoyed tuples, of course, but I like how the C# implementation manages to stay true to the core tenets of the language, in particular type safety.

  • Quantum computing and topological qubits explained clearly

    Don't let yourself be intimidated by all the quantum jargon. The bases of quantum computing are not that complicated, and I can explain them to anyone who understands programming, classical logic gates, the bare minimum about complex numbers and linear algebra… I'll do so in the light of Microsoft's recent announcement of a new discovery that could bring us much more stable quantum computers.

  • Orchard Harvest 2017–Orchard Core CMS

    For the last presentation of the day, Sébastien explained what Orchard Core is all about. Orchard Core runs on ASP.NET Core, and as a consequence is leaner, faster, and cross-platform. One big change is that its content is persisted as documents instead of relational tables.

  • Orchard Harvest 2017–YesSql

    Sébastien Ros gave a surprise demo of YesSql, the document database interface over relational databases that powers Orchard Core’s data access. YesSql stores plain objects into documents stored on a relational database. It supports SQL Server, MySql, Postgre, Sqlite, LightningDB, and in-memory. YesSql also allows for querying those objects using queryable indexes. Those indexes are projections of documents into structured tables, that only exist for the purpose of being queried.

  • Orchard Harvest 2017–Localization

    Benedek is one of the founders of Lombiq, and the caretaker of Orchard localization. Application localization requires taking into account cultural differences such as gender, formal vs informal, pluralization, right to left, verbosity, accents, etc. In Orchard, all localizable strings should be wrapped in T() calls. That is enough to make the string localizable in PO files. Some strings can contain placeholders, such as T("Hello, I’m from {0}."). You can use the Vandelay Industries module’s translation extraction feature to extract all the T strings from a module into po files. The module produces a zip archive that contains the layout of localization files that you’d unzip into the site in order to install it. To localize, you can copy any po file from its en-us directory to a new directory for the new culture, then translate the strings inside.

  • Orchard Harvest 2017–Writing a theme for Orchard Core

    In the first session of the second day of Orchard Harvest, Steve Taylor showed how to build a new theme for Orchard Core. All the pieces are already in place for building themed sites, and the work is similar to Orchard 1.x themes, except for some json file editing because of missing admin UI in places. New Razor Pages features can be used, such as tag helpers, @inject directives, etc. The tag helpers in particular, coupled with Orchard’s shapes, make for very clean markup in view files. The video for the talk, when available, will be a valuable reference for people who want to get started building sites with Orchard Core: the CMS now looks feature-complete enough to do some serious work. Widgets are there, the shape system is there, search, navigation, all work. That Steve was able to build a complete site and theme under an hour (with some pre-built css and views, of course) shows how far Orchard Core has gone already.