• Announcing PowerShell 7.0

      Today, we’re happy to announce the Generally Available (GA) release of PowerShell 7.0! Before anything else, we’d like to thank our many, many open-source contributors for making this release possible by submitting code, tests, documentation, and issue feedback. PowerShell 7 would not have been possible without your help.

      What is PowerShell 7?

      For those unfamiliar, PowerShell 7 is the latest major update to PowerShell, a cross-platform (Windows, Linux, and macOS) automation tool and configuration framework optimized for dealing with structured data (e.g. JSON, CSV, XML, etc.), REST APIs, and object models. PowerShell includes a command-line shell, object-oriented scripting language, and a set of tools for executing scripts/cmdlets and managing modules.
      Read more →
    • WAL in PostgreSQL: 1. Buffer Cache

      • Translation
      The previous series addressed isolation and multiversion concurrency control, and now we start a new series: on write-ahead logging. To remind you, the material is based on training courses on administration that Pavel pluzanov and I are creating (mostly in Russian, although one course is available in English), but does not repeat them verbatim and is intended for careful reading and self-experimenting.

      This series will consist of four parts:

      Many thanks to Elena Indrupskaya for the translation of these articles into English.

      Why do we need write-ahead logging?

      Part of the data that a DBMS works with is stored in RAM and gets written to disk (or other nonvolatile storage) asynchronously, i. e., writes are postponed for some time. The more infrequently this happens the less is the input/output and the faster the system operates.

      But what will happen in case of failure, for example, power outage or an error in the code of the DBMS or operating system? All the contents of RAM will be lost, and only data written to disk will survive (disks are not immune to certain failures either, and only a backup copy can help if data on disk are affected). In general, it is possible to organize input/output in such a way that data on disk are always consistent, but this is complicated and not that much efficient (to my knowledge, only Firebird chose this option).

      Usually, and specifically in PostgreSQL, data written to disk appear to be inconsistent, and when recovering after failure, special actions are required to restore data consistency. Write-ahead logging (WAL) is just a feature that makes it possible.
      Read more →
    • AdBlock has stolen the banner, but banners are not teeth — they will be back

    • Ray Cast Visual Search (RCVS). Fast and simple algorithm for searching 3D objects with similar shapes

        For me, these two models are quite similar, but in fact they don’t have obvious characteristics to measure this similarity. These models have different numbers of vertices, edges and polygons. They are of different sizes, rotated differently and both have the same transforms (Location = [0,0,0], Rotation in radians = [0,0,0], Scale = [1,1,1]). So how to determine their similarity?
        Read more →
      • buildroot — my own experience with multi-platform distro creation


          In my previous article (Monitor linux) I wrote, what is this distro and how it works. Now i will write how to do it. It's may be interesting for everyone, who want to study buildroot.

          Target goals

          The result we get from article is the following:

          • Firmware (non-volatile image with restorable config)
          • Easy management via web-interface
          • Cross-platform (qemu x86_64, arm-based SBC like rasberry 4, beagle bone black and asus tinker board)
          • Support without extra effort
          Read more →
        • Discover Unmatched Potential of Java for Your Next App

            One of the most popular programming languages for a decade, Java has been the top choice and preference of most software application development companies. More and more businesses are looking forward to leveraging the potential of the Java language. How can they not? The websites, web apps, mobile apps all could be developed easily using the language. From small, easy to complex apps, Java is the best-suited as it is robust, reliable, and user-friendly programming language.
            Read more →
          • Ideas for Startups in 2020: 5 Distinct on-demand Mobile App


            We have transcended into a world where most of the services that we want our needs available right in the comfort and confines of our homes! It is quite likely that an application addresses those needs.What makes these applications more interesting and relevant is the fact that they can identify the user and multiple attributes.

            One of the significant attributes that can be identified by using mobile applications is the precise location of the user. The GPS, which was once confined to the military and aviation industry, has now been made available to almost every smartphone user. The GPS, combined with the mapping and navigation services by technology companies like Google and Apple, has made it extremely easy for the service provider to reach the location of the user.
            Read more →
          • Token2 C301-i, the first iOS-compatible programmable TOTP token

              TOKEN2 started manufacturing and selling programmable hardware tokens back in 2015 and we have been constantly asked questions about iPhone support. So far, our burner apps were available only for Android and Windows, as Apple did not allow using the NFC protocol on their devices, even though the hardware supporting NFC was physically present.

              iOS 13 — coreNFC

              The situation has improved a little bit with the release of iOS v13 when access to more features of coreNFC Developer API was introduced. Unfortunately, we discovered that it is not fully compatible with the NFC chips we are using. As there are little chances that Apple will make an effort to change this to adapt to our NFC chips, we had to do the opposite and develop a new, iOS13 compatible, NFC chip instead.

              Token2 C301-i, the first iOS-compatible programmable TOTP token

              Our first iOS-compatible token (model reference: “C301-i”) is currently being beta-tested and will start selling in a couple of months. Pre-orders are available here.
              Read more →
            • What does «clean code» mean in 2020?

                «Clean Code» and a clean cat

                There is nothing developers enjoy better than arguing about clean code: Dan Abramov, for example, has recently fueled the hype with his blog post, «Goodbye, Clean Code».

                However, “clean code” per se doesn’t even have a clear definition. The main book on the subject is Clean Code, where Robert «Uncle Bob» Martin states that there are perhaps as many definitions as there are programmers. But he doesn’t walk away from the fact with a conclusion that there’s no reason to discuss clean code, rather — compare several definitions and highlight general ideas. Therefore he cites the views of several outstanding programmers on what clean code is.

                So we have also become interested in what people in 2020 think of clean code. Have the views changed since the publication of the book? Do opinions vary in different IT fields (maybe backend developers perceive the idea of clean code differently from testers)?

                This spring, Uncle Bob comes to St. Petersburg to give talks at our three conferences: they are about .NET development, testing and JavaScript. Therefore, we’ve asked speakers from each of those conferences to share their opinion on clean code so we could compare the opinions of the industry experts in 2020.

                We've already published the results in Russian, and here's the English version. Since the topic is known to provoke discussions, feel free to give your own definition or argue about those already given!

                UPD: When we posted this article, Uncle Bob had our conferences in his schedule. Unfortunately, the situation has changed. We updated this post on March 12, to avoid any misunderstanding.

                Read more →
              • Using Data Science for house hunting in Montreal


                  I happen to live in Montreal, in my condo on the edge of McGill Ghetto. Close to Saint Laurent Boulevard or the Maine as locals call it, with all it's attractions — bars, restaurants, night clubs, drunken students. And once upon a time, on a particular lively night, listening to the sounds of McGill frosh students drunkenly heading home after hard night of studying. I thought, that it might be a good idea to move into my own house, a little bit further away from the action.


                  Read more →
                • Quick Sort Algorithm in JavaSript (pivot as the first element + pivot as the random element)

                  • Tutorial


                  Quick Sort is one of the most famous and effective Sorting Algorithms. The comprehension of how it works will undoubtedly help you in your JavaScript learning. Also, questions on algorithms are popular in job interviews, so there is a big chance you will be asked to describe how Quick Sort works.

                  I’m sure that I convinced you that Quick Sort is important. Let’s start!

                  Read more →
                • On recursive queries

                  • Translation
                  This article deals with writing recursive queries. This topic was brought up routinely, but the discussion was usually limited to simple cases related to trees: to descend from a vertex to the leaves and to ascend from a vertex to the root. We will address a more complicated case of an arbitrary graph.

                  Let's start with recalling the theory (very briefly since all of it is trivial), and then we will discuss what to do if it is unclear how to approach a real-life problem or if it seems to be clear, but the query persistently fails to work fine.

                  For an exercise, we will use the airlines demo database and try to write a query to find the shortest route from one airport to another.
                  Read more →
                • Mind traps: how scientists fool themselves

                    Even the most honest of scientists are regularly misled by their cognitive biases. They often go to great lengths to find proof for whatever seems logical, while dismissing evidence to the contrary.

                    Yet this issue is rarely discussed — because it remains an embarrassing subject.

                    Read more →
                  • Eliminating Render-Blocking JavaScript and CSS on WordPress

                    • Tutorial

                    Outstanding loading speed is an essential website feature for a high ranking in SERP (Search Engine Result Pages). PageSpeed Insights by Google is an excellent tool for precisely that — optimizing your website’s loading speed. Let’s say you’re using this tool and get the “Eliminate render-blocking JavaScript and CSS in above-the-fold content” warning. No need to worry! In this tutorial, I will show you how to address the issue.

                    Read more →