Maxim Menshikov

Static analysis researcher and software engineer


    A library for parsing printf format Announcements

    Once I needed to parse printf format string. Surprisingly, I haven’t found any decent library to do this. Most sources suggest using regular expressions, but I wanted a more elegant solution for my future projects.

    CMake to Microchip Studio project file generation Announcements

    One big issue with refactorings of projects used in companies is that people get used to some software. There are many people who stick to Windows 7 when Windows 10/11 is quite a good replacement. I liked Visual Studio 2008 way more than Visual Studio 2010 back in time because it was way faster. If you want to replace the build system, the problem is even harder. How to promote a new build system, while keeping the benefits of older IDE?

    Cognitive load reduction as a debugging aid Thoughts

    What are the biggest issues when debugging large projects?

    At some point, you notice that these projects don’t obey to rules. It is often impossible to run these tools under a debugger to get a meaningful result. You get unreadable hundred millions log lines. Reverse debuggers are not useful either: the place where the bug appears is so far from the crash point that you might never really find it.

    Implicit knowledge breaks your software Thoughts

    Software engineering practices is what built the industry we know. It is always critical to acquire locks in order, to unlock the spinlock at all, etc.

    How learning Linux makes you a better programmer Thoughts

    From time to time I hear complaints from newcomers that nobody needs Linux since most developers use Windows. That’s true, Windows remains the most used operating system, however, I argue that Linux is more useful for them.

    Does programming have anything to do with mathematics? Thoughts

    Mathematics was very different centuries ago due to another widespread notation. The notation changed over time, e.g. a significant part of today’s notation was contributed by Rene Descartes. But the question today is how programming languages & pure math notations relate to each other. I argue that they relate to the same concept, and here’s why.

    Dell XPS 15 9560 and Samsung 980 Pro SSD

    Just a friendly reminder that XPS 15 9560 (2017) works great with Samsung 980 Pro SSD albeit the laptop has PCIE 3.0 interface versus recommended PCIE 4.0.

    Escape from Windows 10 Uncategorized

    I am not much dependent on operating system: I have been using Linux distributions for years for work (and in some way developing Linux distribution), and I still have decades of Windows development experience.

    OpenSWAN tips and tricks Research

    IPSec is a nice technology providing secure access to other subnets or hosts.
    Recently I had to work on many different configurations for openswan. I can’t say documentation out there is full enough to cover every single question. Here are my tips and tricks.

    OSBuilder8: процесс разработки Announcements, Research, По-русски

    Я обычно не публикую подробности о проектах, находящихся в активной разработке. Но я решил напомнить читателям, что я всё ещё жив.

    Как обычно, всё началось с идеи: «может, стоит перенести OSBuilder на Windows Phone 8?» Тут есть важное замечание: не очень много устройств могут запускать кастомные прошивки в настоящее время. Это Huawei W1, HTC 8X/8S (теоретически), Samsung Ativ S.

    OSBuilder8: the development process Announcements, Research

    Usually I don’t post any details of projects being actively developed. But this time I decided to do that just to let you know that I am still alive. So, it all started with a simple idea: what about transferring OSBuilder’s rom building experience to Windows Phone 8? Huh, important consideration here: there are not that many devices that can take an advantage of custom ROM. Huawei W1, 8X/8S (theoretically), Ativ S are on the top of the list. Anyway, since I have engineering Ativ S with somewhat like pre-RTM ROM on board, I started development of the tool which main idea was to update my device to GDR3 or so.

    How it works: Full Unlock (WP7) How it works, Retrospects

    Have you been wondering how full unlock for Windows Phone 7 works? I’ve been asked multiple times, but it seems like right time to talk about has just came.

    Unfortunately, Full Unlock source code isn’t released and never will be. However, here is a little walk around the underlying code.

    Как это работает: Full Unlock (WP7) How it works, Retrospects, По-русски

    Интересовались ли вы когда-нибудь, как работает Full Unlock (“Полная разблокировка”) для Windows Phone 7? Меня много раз спрашивали об этом, но, кажется, время рассказать это пришло только сейчас. Статья рассчитана не на программистов/хакеров и так далее. Думаю, суть сможет понять любой более-менее подготовленный пользователь ПК. К сожалению, код Full Unlock не выложен и выложен не будет. Так что пройдёмся по коду в “полуслепом” режиме. Сразу оговорюсь, что в русском переводе используется нестандартная терминология, призванная облегчить понимание. Full Unlock состоит из нескольких частей.

    Merry Christmas!/Happy new year!/whatever Life, Research, Thoughts

    I decided to write one-for-all post about year results. Not that russians celebrate Christmas – but since most of readers do, that would be a better idea to write it now.

    Dynamics 2.0 anniversary Announcements

    Hi all.

    Time passes by, we get older, and so do our projects.
    One year ago we released Dynamics 2.0 ROM. It is so far the biggest ROM project for Windows Phone we ever created.

    Major giveaway Announcements

    Finally I found time to upload most of source codes of latest projects. Unfortunately, uploading of all projects isn’t possible due to technical and ethical reasons, but if you feel like %projectname% is missing, let me know.

    Windows 8.1 RTM Thoughts

    Preview->RTM upgrade way is a boring topic to discuss. I am more wondering why Microsoft couldn’t implement it as incremental update automatically installable via Windows Update. Instead, typical long installation is required. And the first try was unsuccessful at all (until I updated certain drivers).

    Hello, world! Life

    Finally I decided to spend some time setting up website for all my developments. Some of you may know me as ultrashot from, some may be aware of my previous Sony Ericsson ELFPack-related R&D activities. No matter from where you know me, this website is a new place for me to share news and thoughts. I will try to shed some light on future developments (hopefully) not forgetting about previous projects. It might be served as a detailed look at project implementation, flashback to the history of developments, or anything else you ask me to write about.

    Overall, I look forward to making this blog “must read” one.