• The VS Code Roadmap 2019 — DRAFT

      As 2018 has come to an end, now is the time to look towards the future. We typically look out 6 to 12 months and establish topics we want to work on.

      As we go we learn and our assessment of some of the topics listed changes. Thus, we may add or drop topics as we go.

      We describe some initiatives as «investigations» which means our goal in the next few months is to better understand the problem and potential solutions before scheduling actual feature work. Once an investigation is done, we will update our plan, either deferring the initiative or committing to it.

      As always, we will listen to your feedback and adapt our plans if needed.

      Read more →
    • Running image viewer from Windows XP on modern Windows

        I have a directory with old images which I collected in the noughties. I move it with all my other files from one computer to another on every upgrade. Every now and then, when I feel a bit nostalgic, I open it and look through the pictures. There are a few GIF files with animation, and every time I notice that the default image viewer from Windows 7 does not support it. I remembered, that the image viewer from Windows XP was able to play GIF animation properly. So, I spent a bit of time to overcome a few obstacles and to run the old image viewer on modern Windows, a small launcher was created for this purpose. Now I can watch these old images in authentic interface of the old image viewer from Windows XP.

        Download: shimgvw_xp32.7z (includes a binary and source code of the launcher, and the shimgvw.dll from English Windows XP SP3).

        Read more →
        • +23
        • 10.2k
        • 1
      • The Cake is a Lie

          Have you ever thought — How to explain programming to the one never faced it before? It could be a problem, as long a new one will not understand you.

          So, let's imagine — you have a friend, who is not soiled by computer science, never tried to automate something, never played factorio, never written a single line of code.

          So, let's imagine a normal human being.

          And let's call him Bill. He is not very good in Maths, just “not good”, but he loves candies!

          Your task is to teach Bill some basic(or magic) IT things, you are doing every day. The simplest ones.
          So what shall you do first? Basically — FEED HIM!

          Read more →
        • Ternary computing: basics

            Balanced ternary

            I am working on a computer architecture principles lectures for our university; and as an assignment I'd like to propose to my students to build a simple programmable machine working in ternary. The main reason is fun: as a lecturer I must bring a bit of entertainment, otherwise I won't be listened to. Besides, it is important for historic reasons. Any further «why?!» questions will be answered «Because I can».

            This page describes the very basics, it won't go beyond a simple ternary adder (and its hardware implementation). Stay tuned for more.

            I chose the balanced ternary system: every trit represents one of three possible states, -1, 0 or 1. A very extensive description of this system may be found here.

            Read more →
            • +40
            • 2.8k
            • 4
          • Translating Dust templates to JSX

              Hello Habr! I'm Miloš from Badoo, and this is my first Habr post, originally published in our tech blog. Hope you like it, and please share and comment if you have any questions

              So… React, amirite???

              It appeared in the middle of the decade (plagued by the endless JavaScript framework wars), embraced the DOM, shocked everyone by mixing HTML with JavaScript and transformed the web development landscape beyond recognition.

              All those accomplishments, without even being a framework.

              Love it or hate it, React does one job really well, and that is HTML templating. Together with a great community and a healthy ecosystem, it’s not hard to see why it became one of the most popular and influential JavaScript libraries, if not the most popular one of all.
              Read more →
            • .NET, TensorFlow, and the windmills of Kaggle — the journey begins

              This is a series of articles about my ongoing journey into the dark forest of Kaggle competitions as a .NET developer.

              I will be focusing on (almost) pure neural networks in this and the following articles. It means, that most of the boring parts of the dataset preparation, like filling out missing values, feature selection, outliers analysis, etc. will be intentionally skipped.

              The tech stack will be C# + TensorFlow tf.keras API. As of today it will also require Windows. Larger models in the future articles may need a suitable GPU for their training time to remain sane.
              Let's predict real estate prices!
            • SAPUI5 for dummies part 3: A complete step-by-step exercise

              • Tutorial

              Introduction & Recap

              In the previous blog post, we learned how to filter, sort and group our table. This is a fundamental aspect of every CRUD application because most of the time users have to deal with hundreds of hundreds of records.

              What will be covered on this exercise

              With Part 3 of this series of blog posts, we will learn how to create a Master-Detail application leveraging the SplitApp UI control and how correctly configure the app’s manifest to handle routes and targets.

              • SplitApp: UI control that allows you to create a Master-Detail application (used as a replacement of the App control)
              • Routing: we will configure the manifest.json to correctly handle the routing of the application
              • ObjectHeader: control that enables the user to easily identify a specific object. The object header title is the key identifier of the object and additional text and icons can be used to further distinguish it from other objects
              • Navigation to a detail view and bind the element context: you will learn how to navigate and open a detail page and bind the current View (of the detail) to a new context
              • List: in the master page we will use a list to display BusinessPartner because we will have less space
              Читать дальше →
            • AdBlock has stolen the banner, but banners are not teeth — they will be back

            • The Fall and Recovery of a Mold

                Software component developers tend to be far removed from the end users of the products in which their components are employed. Recently, however, we connected directly with a KOMPAS-3D MCAD user to solve an issue involving mold design. It seems that 3D models were being exported incorrectly to data exchange formats like STP, X_T, and SAT. The cause, unhappily for us, turned out to be in our С3D Modeler geometric modeling kernel. Here is how we solved the problem, quickly.

                Читать дальше →
              • Naming things

                  There are only two hard things in Computer Science: cache invalidation
                  and naming things.

                  — Phil Karlton

                  We, developers, spend more time reading code than writing it. It is important for the code to be readable and clear about its intent.

                  Below are some advice based on my experience naming things.

                  Читать дальше →
                • Programmable TOTP tokens in a key fob form-factor

                    TOTP tokens are small, easy-to-use devices that generate one-time passcodes. These tamper-evident devices can be used wherever strong authentication is required.

                    TOKEN2 is selling programmable hardware tokens in credit card format for already a few years now. Token2 miniOTP cards are marketed as a hardware alternative to Google Authenticator or other OATH-compliant software tokens. Having the same functionality extended to tokens in classic keyfob/dongle format was one of the features our customers asked for.

                    We are hereby announcing our new product, TOKEN2 C300 TOTP hardware token, which is possible to be reseeded for an unlimited number of times via NFC using a special «burner» app.
                    Читать дальше →
                  • SAPUI5 for dummies part 2: A complete step-by-step exercise

                    • Tutorial

                    Introduction & Recap

                    In the previous blog post, we started designing our application rendering a table with some Business Partner. We learned what OData protocol is, how to read an OData XML manifest, how to bind data to a Table and how to customize columns layout based on different screen resolution.

                    What will be covered on this exercise

                    With Part 2 of this series of blog posts, we will learn how to interact with data in our Tables and List. We will learn how to filter and sort data in a smart way.

                    • Create JSONModel to handle local data
                    • Set a default sizeLimit to our JSONModel
                    • FilterBar: UI control that displays filters in a user-friendly manner to populate values for a query
                    • Use XML Fragments to create a View Settings Dialog to handle sort and group data
                    • Filter and Sort data
                    • Add an Info Toolbar to our table to display useful information
                    Read more →
                  • Test me if you can. Do YML developers Dream of testing ansible?

                      kitchen-ci schema

                      It is text version of the presentation 2018-04-25 at Saint-Petersburg Linux User Group. Configuration example locates at https://github.com/ultral/ansible-role-testing

                      I suppose that that you make configuration management, not bash. It means that you have to test it some how. Have you ever tested ansible roles? How do you do it?

                      Read more →
                    • Naïve Math: the Mendocino motor and Earnshaw's theorem

                      • Tutorial

                      The problem statement

                      I was surfing the Internet the other day and a rather curious thing caught my mind: the Mendocino motor. It’s an extremely low-friction bearing rotor: the original one had a glass cylinder hanging on two needles, but the modern ones use magnetic suspension. It’s a brushless engine: the rotor has solar batteries attached to it, which generate current for the coils wrapped around the rotor. The rotor spins in a fixed magnetic field, the solar batteries getting exposed to the light source one after the other. It’s a rather elegant solution that’s very possible to recreate at home.

                      Here’s the video that explains how it works (in Russian):

                      But this video had another curiosity even stronger than the engine itself. In the video description Dmitry Korzhevsky writes: “You CAN’T replace the side support with a magnet! Don’t ask me about this anymore!”
                      I LOVE the 'impossible' word!
                    • [SAP] SAPUI5 for dummies part 1: A complete step-by-step exercise

                      • Tutorial

                      Introduction & Recap

                      In the previous blog post, we have created a new SAPUI5 application on our SAP SCP WebIDE Full stack and we have configured it to use the destination to the SAP Netweaver Gateway Demo ES5.

                      What will be covered on this exercise

                      • What is an XML Metadata Manifest and what’s inside it?
                      • How to use our OData Model and bind it into our application
                      • Use a sap.m.Table with items and property binding
                      • Use sap.ui.model.type.DateTime to format JavaScript Date
                      • How to style columns to act differently on mobile/tablet/desktop devices
                      Read more →
                    • How to test your own OS distribution


                        Russian version

                        Let's imagine that you are developing software and hardware appliance. The appliance consists of custom OS distributive, upscale servers, a lot of business logic, as a result, it has to use real hardware. If you release broken appliance, your users will not be happy. How to do stable releases?

                        I'd like to share my story how we dealt with it.

                        Читать дальше →
                      • (in)Finite War

                          infitite war

                          We have a problem. The problem with testing. The problem with testing React components, and it is quite fundamental. It’s about the difference between unit testing and integration testing. It’s about the difference between what we call unit testing and what we call integration testing, the size and the scope.

                          It's not about testing itself, but about Component Architecture. About the difference between testing components, standalone libraries, and final applications.

                          Everyone knows how to test simple components(they are simple), probably know how to test Applications(E2E). How to test Finite and Infinite things…

                          But... no, nobody knows actually.