Skip to main content

Posts

Showing posts from September, 2015

Curing Qt UTF-8 console pain on Windows

It happens that sometimes I have to write console application in C for Windows, and having only ASCII output is not always an option: basically, I need to have a possibility to perform text output in Ukrainian which is okay when you use UTF-8. Unlike others, Windows use legacy code pages system to make console work with natural languages text in different countries with different localisations, and that's a weird thing for Linux/Mac user. I work in Qt Creator when coding in C, and it brings another tricky thing: qt_process_stub.exe - a nasty utility which is run from the IDE, which actually runs your app. My task was to find a non-tricky solution to have a possibility to work seamlessly when debugging my C programs from Qt Creator. Step 1: Changing the font Most of Windows developers possibly know that there's a default font in Windows cmd.exe ( which is a terminal itself) that does not support UTF-8 encoding (yeah...), so the first thing you have to do is to run cmd

Nimongo - pure Nimlang MongoDB driver

Lately I've spent much time coding in Nim. If you're still not acquainted with this fascinating, one of the fastest growing programming languages, please visit its official site , and get your grips on it. To be short, it's a statically typed compiled programming language that translates its source code ANSI C, which is then compiled into native executables. Such flow makes it easy to employ Nimlang on a broad range of software and hardware platforms. Other features like, possibly, the most progressive compile-time programming features, smart type inference , multi-methods , and many others makes coding in Nim much faster than in its counterparts. Meet nimongo We have been adopting Nim as an experiment for quite a time at one of our commercial projects here, at ZeoAlliance. Lack of powerful ecosystem and wide community made me to start working on some tools that are crucial for the project. One of such tools (located at Github), which is fully open source, is a