• Accelerating PHP connectors for Tarantool using Async, Swoole, and Parallel



      In the PHP ecosystem, there are currently two connectors for the Tarantool server: the official PECL extension tarantool/tarantool-php written in C, and tarantool-php/client written in PHP. I am the author of the latter one.

      In this article I would like to share the results of performance testing of both these libraries and show how you can achieve 3x-5x performance improvement (on synthetic tests!) with minimal changes in code.
      Read more →
    • Apache Hadoop Code Quality: Production VS Test

        Рисунок 1

        In order to get high quality production code, it's not enough just to ensure maximum coverage with tests. No doubts, great results require the main project code and tests to work efficiently together. Therefore, tests have to be paid as much attention as the main code. A decent test is a key success factor, as it will catch regression in production. Let's take a look at PVS-Studio static analyzer warnings to see the importance of the fact that errors in tests are no worse than the ones in production. Today's focus: Apache Hadoop.
        Read more →
      • PHP Microservice Framework: Development Environment for Swoft

        • Tutorial


        Introduction


        What is Swoft?


        Swoft is a PHP high performance microservice coroutine framework. It has been published for many years and has become the best choice for php. It can be like Go, built-in coroutine web server and common coroutine client and is resident in memory, independent of traditional PHP-FPM. There are similar Go language operations, similar to the Spring Cloud framework flexible annotations.

        Read more →
      • Get Moving with Xamarin.Forms 4.4

          We were speaking with a customer last year that builds dozens of mobile applications every year. They said, «We cannot remember the last time we made a mobile app that did NOT include a carousel view.» Many of you have expressed almost identical sentiments to us. So, we are very pleased to introduce a new CarouselView control in Xamarin.Forms 4.4.0. Along with this we also have IndicatorView for displaying the pages or items in the carousel. As well as SwipeView for providing contextual actions to any element in a CollectionView. The release theme of getting things moving would not be complete without showcasing the new GIF animation support for images. Let’s begin right there.

          Read more →
        • Tips and tricks from my Telegram-channel @pythonetc, November 2019


            Tips and tricks from my Telegram-channel @pythonetc, November 2019

            It is a new selection of tips and tricks about Python and programming from my Telegram-channel @pythonetc.

            Previous publications.



            PATH is an environment variable that stores paths where executables are looked for. When you ask your shell to run ls, the shell looks for the ls executable file across all paths that are presented in PATH.
            Read more →
          • The Flight with a Dosimeter in the Pocket

            image
            The developer of personal dosimeters presented me with an interesting gift at one of Skolovo conferences in early 2011. It was a funny DO-RA gadget made in the form of an Easter egg and packed in a large cardboard box like a smartphone. Apparently, its designers new that their boss Viktor Vekselberg, chairman of the Skolkovo Foundation, was fond of Faberge eggs. They made a plastic copy of the famous Easter gift of the Russian Imperial Court.

            I found a dusty box with the DO-RA gadget just before a business trip to the United Arab Emirates. The device had no battery and was connected to Apple smartphones via a standard audio jack. It is worth noting that, starting with the 7th iPhone model, the Apple Inc. no longer releases smartphones with an audio jack considering it an anachronism. However, the abandonment of the quite utilitarian interface such as audio jack coincided with the release of expensive Airpod earphones. Well, it's their business to earn money on all sorts of restrictions.
            Read more →
          • Demystifying the new .NET Core 3 Worker Service

              Premier Developer Consultant Randy Patterson discusses the benefits of using the new Worker Service project template introduced in .NET Core 3.

              .NET Core 3 introduced a new project template called Worker Service. This template is designed to give you a starting point for cross-platform services. As an alternate use case, it sets up a very nice environment for general console applications that is perfect for containers and microservices.



              Some of the benefits of using this template include the following areas.

              Read more →
            • AdBlock has stolen the banner, but banners are not teeth — they will be back

              More
              Ads
            • MobX or Redux: Which is Better For React State Management?



                In JavaScript, state management is a hot of discussion these days. When it comes to implementing state management, developers often find it challenging dealing with boilerplate code in Redux. Hence, MobX has proved to be a good alternative to Redux which gives the same functionality with less code to write. However, both state management tools work well with React.

                Let's first have a look at the common things between the two:

                1) Both support time-travel debugging
                2) Both contain open-source libraries
                3) Both provide a client-side state management
                4) Both provide huge support for React native frameworks

                In this blog, we have listed all the pros and cons of both state management solutions. It will help web developers to choose the best one for their next project. Before discussing this, we have compared both Redux and Mobx based on some parameters as given below:
                Read more →
              • Where Do Mojibakes Come From? Essentials of Encodings

                • Translation


                This article explores the basic concepts behind character encoding and then takes a dive deeper into the technical details of encoding systems.


                If you have just a basic knowledge of character encoding and want to better understand the essentials, the differences between encoding systems, why we sometimes end up with nonsense text, and the principles behind different encoding system architecture, then read on.


                Getting to understand character encoding in detail requires some extensive reading and a good chunk of time. I’ve tried to save you some of that effort by bringing it all together in one place while providing what I believe to be a pretty thorough background of the topic.


                I’m going to go over how single-byte encodings (ASCII, Windows-1251 etc.) work, the history of how Unicode came to be, the Unicode-based encodings UTF-8, UTF-16 and how they differ, the specific features, compatibility, and lack thereof among various encodings, character encoding principles, and a practical guide to how characters are encoded and decoded.

                Read more →
              • Habr — best articles, authors and statistics 2019

                  2019 is coming to an end, and it's Christmas soon. It is also the time to grab all data and collect statistics and a rating of the most interesting Habr's articles for this period.



                  In this post the best articles and best Habr authors 2019 will be presented, I also will show some statistical graphs that I find interesting or unusual.

                  Let's get started.
                  Read more →
                • Faster ENUM

                    tl;dr


                    github.com/QratorLabs/fastenum
                    pip install fast-enum

                    What are enums


                    (If you think you know that — scroll down to the “Enums in Standard Library” section).

                    Imagine that you need to describe a set of all possible states for the entities in your database model. You'll probably use a bunch of constants defined as module-level attributes:
                    # /path/to/package/static.py:
                    INITIAL = 0
                    PROCESSING = 1
                    PROCESSED = 2
                    DECLINED = 3
                    RETURNED = 4
                    ...

                    ...or as class-level attributes defined in their own class:
                    class MyModelStates:
                      INITIAL = 0
                      PROCESSING = 1
                      PROCESSED = 2
                      DECLINED = 3
                      RETURNED = 4

                    That helps you refer to those states by their mnemonic names, while they persist in your storage as simple integers. By this, you get rid of magic numbers scattered through your code and make it more readable and self-descriptive.

                    But, both the module-level constant and the class with the static attributes suffer from the inherent nature of python objects: they are all mutable. You may accidentally assign a value to your constant at runtime, and that is a mess to debug and rollback your broken entities. So, you might want to make your set of constants immutable, which means both the number of constants declared and the values they are mapped to must not be modified at runtime.
                    Read more →
                  • Who Uses Python | Top Reasons Why You Should Use Python

                      Usually, software companies involved in a lot of actions like planning for product development, and much more important features. Hence, it becomes tough to take time out of these important activities and give it to choose the appropriate programming language for the business application. A business needs to keep a lot in mind, for example, app security, development cost, and several other important things.

                      For all of these reasons and many others, Python comes around as the best choice. Python, as a leading and secure platform, frees from all of the issues to a very large extent, as well as brings many business advantages. In fact, Python is not just limited to that as it also provides the option for future upgrades. After all, this language can simply communicate with the other languages and that adds to its performance.

                      We will be concentrating in-depth on the various business advantages of using Python, which is a high-level OOPs based, explained, and a general-purpose dynamic programming language. This language doesn’t duplicate things and its key focus is on the accelerated app development. Design-wise, it offers readability of code, while its syntax enables the developers to represent the concept in a few lines of code. This language offer constructs that are created to enable simple programs on both small as well as large scale.
                      Read more →
                    • Chronicle of Rambler Group and Nginx confrontation (updated on 18 Dec, 6 p.m.)

                      • Translation


                      On December 12, it became known from Nginx's employee Twitter that the company's office was searched due to the criminal case under Article 146 of the Criminal Code of the Russian Federation 'Violation of Author's and Neighboring Rights'. The claim belong to Rambler Group was, although formally the complaintant is Lynwood Investments CY Ltd, to which the rights were transferred. The last-mentioned is related to the co-owner of Rambler Group, Alexander Mamut.

                      The point of the claim: Igor started working on Nginx as an employee of Rambler and only after the tool became popular he founded a separate company and attracted investments.

                      Here is how the events unfolded.
                      Read more →
                    • A Second Year of Q#

                        You can see all of the release notes for the year here.

                        Remember How We Started


                        Our first release of our second year, 0.4, was a triumph! we got a customer request for a big integer type on January 1st, and were able to respond by shipping a new BigInt data type just 29 short days later!!! Remember, we’re outside Seattle, pretty far north, so our winter days are really short.

                        Our secret? We had started working on the BigInt type in December.

                        We also decided to change our release cadence for our second year of Q#. Our first year, we had shipped releases sporadically, when we had some major feature to share, or possibly just a fix to an annoying bug. For our second year, we moved to a more regular release cadence, putting out a new release every month. We hoped that this would make things more predictable for our users and easier for us to manage.

                        Read more →
                      • Open Source Java library with stacktrace filtering, Silent String parsing and Version comparison

                        Over some time in different jobs, I came across a need for several utilities that I couldn't find available at the time. And I saw that I needed them several times over and over again. So I wrote my own small library that I found very useful. So I just published it as an open-source java library.

                        Here is the Github link

                        Javadoc online is available here

                        Also, this library is available on Maven Central. Here are the Maven artifacts (the version 1.5.0.8 is the latest at the time of writing of this article but might change in the future. To check for the latest version search for artifact «MgntUtils» at http://search.maven.org/):

                        <dependency>
                             <groupId>com.github.michaelgantman</groupId>
                             <artifactId>MgntUtils</artifactId>
                             <version>1.5.0.8</version>
                        </dependency>
                        
                         <dependency>
                             <groupId>com.github.michaelgantman</groupId>
                             <artifactId>MgntUtils</artifactId>
                             <version>1.5.0.8</version>
                             <classifier>javadoc</classifier>
                        </dependency>
                        
                        <dependency>
                             <groupId>com.github.michaelgantman</groupId>
                             <artifactId>MgntUtils</artifactId>
                             <version>1.5.0.8</version>
                             <classifier>sources</classifier>
                        </dependency>
                        

                        Below is just a short explanation of what is there. The library comes with a nicely written (I hope) JavaDoc with a detailed description. So here is the list of features:
                        Read more →
                      • Top 10 Team Chat Software for a Self-Hosted environment specifically designed for Large Enterprises

                          image

                          You need a platform to host your enterprise work conversations! Indeed that’s the only way you bring your teams together to exchange work ideas and discuss more work. Making your teams rely on personal chat applications at your workplace is no fun when you seriously look for productive outcomes from them. Instead, give them the best team chat software like Slack, Troop Messenger, Flock, Microsoft Teams, Mattermost, etc., to stay informed and monitored about all the work routines and updates.

                          These days, the business entities, corporates, Start-ups, SMEs, large enterprises, etc., are bombarded with many collaboration tool options. And, most of the tools are available in the variants of SaaS and Self-Hosting.

                          Data is crucial for every industry, but enterprise risk management is true of high priority for large enterprises and Governments. That being said, an instant messaging solution that delivers self-hosting is recommended for such kind of data-specific industries. Let us have a look at the following business collaboration tools that safeguard the internal communication needs of these entities.
                          Read more →
                        • Channel quality indicator for server WebRTC over TCP


                            Publish and Play


                            There exist two main functions of WebRTC operation on the server side in the field of streaming video: publishing and playing. In the case of publishing, the video stream is captured from the web camera and moves from the browser to the server. In the case of playing, the stream moves in the opposite direction, from the server to the browser, is decoded and played in the browser’s HTML5 <video> element on the device’s screen.

                            Read more →
                          • React benefits: A blessing for Businesses?

                              Launched in 2013, React has been successfully used to develop 1,004,124 websites in the past 6 years. The Javascript library React JS is known for giving simple programming experience and improved performance.

                              It was released by Facebook to resolve the issues of coding and maintenance with their ads. It was developed with an intention to increase and manage Facebook ads traffic. React has successfully delivered the expected outcomes throughout its journey.
                              Read more →
                            • SEO vs. PPC — What's better for your business?

                                What's better for your business?

                                At a certain point, any website owner wonders what's better: SEO or PPC? Which promotion strategy will be the most rational to use in this particular situation? Or maybe it's best to combine both?

                                Before you decide between SEO and PPC, you need to consider the differences between them…


                                Read more →
                              • Nginx's office is being searched due to Rambler Group's lawsuit. The complaintant press service confirmed the suit

                                • Translation
                                According to one of the employees Nginx's Moscow office is being searched due to the criminal case brought by Rambler Group (the official response of the company's press office to this issue and confirmation of claims against Nginx is below). The photo of the search warrant is provided as the evidence of the criminal case initiated on December 4, 2019 under Article 146 of the Criminal Code of the Russian Federation 'Violation of Author's and Neighboring Rights'.

                                Nginx search warrant


                                It is assumed the complaintant is Rambler, and the defendant is still an 'unidentified group of persons', and in the long run — the founder of Nginx, Igor Sysoyev.

                                The point of the claim: Igor started working on Nginx as an employee of Rambler and only after the tool became popular he founded a separate company and attracted investments.

                                It is not clear why Rambler revised its 'property' only 15 years later.
                                Read more →
                                • +76
                                • 14.3k
                                • 4