• Confusing extensions in Swift

    This post is a little bit the information aggregator. If you find a mistake, you could write to me about it I really appreciate that. Have a nice read.

    Example with JSONDecoder


    What would happen if we run the following piece of code?

    struct Test<T>: Codable where T: Codable {
        enum CodingKeys: String, CodingKey {
            case value
        }
        
        let value: T
        let info: String
    }
    
    extension Test {
        init(from decoder: Decoder) throws {
            let container = try decoder.container(keyedBy: CodingKeys.self)
            self.value = try container.decode(T.self, forKey: .value)
            self.info = "Default init(from decoder:)"
        }
    }
    
    extension Test where T == String {
        init(from decoder: Decoder) throws {
            let container = try decoder.container(keyedBy: CodingKeys.self)
            self.value = try container.decode(T.self, forKey: .value)
            self.info = "Custom init(from decoder:)"
        }
    }
    
    let data = #"{"value":"Hello, World!"}"#.data(using: .utf8)!
    let object = try? JSONDecoder().decode(Test<String>.self, from: data)
    print(object.debugDescription)
    

    Try thinking for 5 seconds about the result.

    The result
    Optional(
        Test<String>(
            value: "Hello, World!", 
            info: "Default init(from decoder:)"
        )
    )
    


    Read more →
  • How Much Does a Diet & Nutrition Planning App Costs?

    • Tutorial
    image

    Good health has always been in practice because it is the ultimate way to deal with diseases effectively and live a healthy life. But the healthy lifestyles with almost minimal physical activity make it challenging to achieve it.

    Fortunately, diet and nutrition applications have emerged as the ultimate savers to achieve good health. Due to their many applications ranging from tracking steps to controlling optimal food and water consumption, they have become a useful device for achieving fitness goals.

    Did you know!

    According to a recent mobile app survey, the global mHealth market is growing at a CAGR of 44.2%, and by 2025. The total global mHealth market is estimated to reach approximately US $ 100 billion in 2021.

    Total global mHealth market prediction from 2016 — 2025



    image

    If you are looking for a diet and nutrition app development, this article is just for you. Here, we will take a deeper dive into how to build a diet and nutrition app, its essential features, and cost of development.

    But firstly, you have to be aware of the top leaders of the MHealth industry. So, without wasting any more time, let’s start!

    The Best Diet and Nutrition App Market Players And Their Features


    Read more →
  • Launching Grenades in Unreal with Gameplay Ability System: Part 1

    This is the first tutorial in the series dedicated to Gameplay Ability System. The goal for these tutorials is to be easily digestible, 10 minutes-long reads focused on getting a working prototype of a gameplay mechanic on screen as fast as possible. So whatever you new to Unreal Engine or new to Gameplay Ability System, Designer, Animator, or Technical Artist, these tutorials will help you build your projects faster and stop being afraid of using GAS for your projects.


    This series requires little to no knowledge of C++. It requires a basic knowledge of Blueprints scripting and general knowledge about unreal asset types and their use for building gameplay. I tried to cover steps in as much detail as possible and provide GIFs and plenty of images to help you on your way to the result, which is just 20-30 minutes away from now.


    I wish you good luck and let's go!


    image


    The end result we will be able to see very soon.

    Read more →
  • What App Stores can you consider except Apple App Store and Google Play Store? Here are 6 Alternative App Stores

      Recently Epic Games’ Fortnite was removed from the Apple App Store and Google Play Store. The main reason being Epics bypassing of in-app purchases instead of using the officially sanctioned system for both platforms. While it is still possible for you to download Fortnite directly, this large scale case brings to light the duopoly of Apple and Google in the mobile market.

      For most developers, these two stores account for almost all of their revenue and userbase. While Epic Games will be fine to go without, for the time being, what about the other 99% of developers who rely on these two stores for distributing and monetizing their apps. In this article, we’ll provide some of the alternative stores available for both developers and consumers for finding or distributing apps.

      For one reason or another, you may have found yourself wondering, ‘where are some other places I can go to find and download new apps and games for my mobile device’? Or ‘are there any other marketplaces for me to share my apps’?

      Читать далее
    • OPPO, Huawei, Xiaomi. Chinese app stores join forces to take on Google

        Major players in the Chinese app market are joining forces to take on the almighty Google Play store. Xiaomi, Oppo and Vivo are reported to launch the Global Developer Service Alliance (GDSA), a platform allowing Android developers to publish their apps in the partnering stores from one upload.

        The GDSA is expected to launch in nine countries—including India, Indonesia, Malaysia, Russia, Spain, Thailand, the Philippines, and Vietnam—although paid app support may vary across the regions. Canalys’ Nicole Peng explains the wide reach of this alliance:

        By forming this alliance each company will be looking to leverage the others’ advantages in different regions, with Xiaomi’s strong user base in India, Vivo and Oppo in Southeast Asia, and Huawei in Europe. 

        Читать далее
      • Female gamers in China

          The latest forecast by Niko Partners shows promise that gender equality in gaming is on track to reach 50/50 by the end of 2020, as figures show a consistent rise of 4% year on year: “Female gamers are rising, making up 42% of total gamers in 2018, 46% in 2019, and forecast to be 50% in 2020, primarily on the mobile platform.” This forecast follows a report by the China Audio-Video and Digital Publishing Association last year that identified growth potential and calls for more quality games targeted at female players.

          2019 saw the number of female gamers reach 300 million, contributing RMB 52.7 billion (USD 7.5 billion) or 22.8% of total actual sales revenue of the gaming industry in China. The Association’s report also identified low cost leisure games as most popular among females. Furthermore, the Gamma Data report gives China’s female game market revenue a forecast of RMB 56.8 billion for 2020, with 70% (RMB 40.1 million) of revenue deriving from mobile games.

          Читать далее
        • Ads
          AdBlock has stolen the banner, but banners are not teeth — they will be back

          More
        • Online Almighty

            2020 broke in brazenly and audaciously with its rights to our quiet and measured everyday life. It seems like the whole world has gone online, making life easier for millions of people including event managers. But not so fast...

            In this article, I will tell you how our PVS-Studio team started its year in the field of business events, conferences, what experience we gained and what mistakes we want to protect our readers from. Whether you are a CEO, a hoster of business meetings, a developer, a teamlead, or etc, our experience will be useful to everyone in case you somehow relate to conferences.

            Читать далее
          • Linux Switchdev the Mellanox way

              This is a transcription of a talk that was presented at CSNOG 2020 — video is at the end of the page



              Greetings! My name is Alexander Zubkov. I work at Qrator Labs, where we protect our customers against DDoS attacks and provide BGP analytics.

              We started using Mellanox switches around 2 or 3 years ago. At the time we got acquainted with Switchdev in Linux and today I want to share with you our experience.
              Read more →
            • The Different RPG styles between East and West

              image


              The Chinese Mobile RPG: the Genre of Giants.


              Chinese RPGs make up 56% of the top 500 grossing iOS games in China. According to data gathered in 2019 by Game Refinery’s Joel Julkunen. Let’s take a look at the genre and some important points for game developers and RPG enthusiasts to consider Chinese Mobile RPGs.


              RPG or role-playing game is a game where the player plays as a character, often the main character, in a fictional game world.

              Read more →
            • How to prepare for PMP exam in 60 days

              Do you think of taking the PMP exam? Awesome! Do you know how to plan your preparation for the test? Here I’m going to share the plan of how to get prepared for the PMP exam in 60 days.

              PMP exam = your own project


              To begin with, let’s clarify: you’re ready to work hard and to follow the plan. Otherwise, this journey will take you forever. The key here is to perceive the PMP exam as your personal project and manage it like you're managing projects for your clients. The difference here is that you are your client yourself; and you are the resource to release this project. What is more, you will need not only to plan this project, but to execute the plan yourself too. On one hand, it will add an additional challenge. On the other hand, it will make things even more exciting to get them done.

              What do you need to launch this project? First of all, the input data. This is actually what you usually need to start a project. I’m talking about the key performance indicators that we consider while planning a project. They are time, scope and budget. Of course, funds are important. As you have decided to take the test and to pass the certification you should be aware of the process: how much the test costs, how much the course costs, and other relevant expenses. Therefore, let’s move directly to the time and scope.

              Time


              You have 60 days in order to get prepared for the PMP exam, and that is why you need to define how much time you are able to allocate to get prepared for the tests daily.

              Yes, daily, because 60 days is quite an intense period. I know that for some people it takes six months or even a year to get prepared for this test. However, the less period of time you have, the more advantages you finally get.

              Here is the thing, for the PMP there is no shortcut. It is quite a big volume of knowledge that you need to obtain in order to pass this test.
              Read more →
            • Toxic Comments Detection in Russian


                Currently, social network sites tend to be one of the major communication platforms in both offline and online space. Freedom of expression of various points of view, including toxic, aggressive, and abusive comments, might have a long-term negative impact on people’s opinions and social cohesion. As a consequence, the ability to automatically identify and moderate toxic content on the Internet to eliminate the negative consequences is one of the necessary tasks for modern society. This paper aims at the automatic detection of toxic comments in the Russian language. As a source of data, we utilized anonymously published Kaggle dataset and additionally validated its annotation quality. To build a classification model, we performed fine-tuning of two versions of Multilingual Universal Sentence Encoder, Bidirectional Encoder Representations from Transformers, and ruBERT. Finetuned ruBERT achieved F1 = 92.20%, demonstrating the best classification score. We made trained models and code samples publicly available to the research community.
                Read more →
              • ConcurrenCpp — The C++ concurrency library

                  Repository


                  concurrencpp allows applications to write asynchronous code easily and safely by using executors and coroutines.


                  By using concurrencpp applications can break down big procedures that need to be processed asynchronously into smaller tasks that run concurrently and work in a co-operative manner to achieve the wanted result.


                  concurrencpp also allows applications to write parallel algorithms more easily by using parallel coroutines.


                  concurrencpp main advantages are:


                  • Being able to write non-blocking, asynchronous code easily by using the C++20 coroutines and the co_await keyword.
                  • Being able to write modern concurrent code without having to rely on low-level concurrency primitives like locks and condition variables.
                  • The concurrency runtime manages all low-level resources such as threads automatically.
                  • Reducing the possibility of race conditions, data races and deadlocks by using high-level objects with built-in synchronization.
                  • concurrencpp provides various types of commonly used executors with a complete coroutine integration.
                  • Applications can extend the library by using their own provided executors.
                  • Applications automatically scale-up to use all hardware processors (cores).
                  Read more →
                • Solving coding problems with Kotlin: Collection functions

                    (originally published on Medium)

                    I have talked to many Android developers, and most of them are excited about Kotlin. So am I. When I just started learning Koltin, I was solving Kotlin Koans, and along with other great features, I was impressed with the power of functions for performing operations on collections. Since then, I spent three years writing Koltin code but rarely utilised all the potential of the language.

                    During this year, I did more than a hundred coding problems on Leetcode in Java. I didn’t switch to Kotlin because I know the syntax of Java 6 so well, that I could effortlessly write code without autocompletion and syntax highlighting. But I didn’t keep track of new Java features, as Android support of Java SDK lacked many versions behind. I didn’t switch to Kotlin for solving problems right away. Although I was writing Kotlin code for several years, I felt that I need to make an extra cognitive effort to get the syntax and the language constructions right. Solving algorithmic problems, especially under the time pressure, is very different from Android app development. Still, the more I learned about Kotlin, the more I realised how many powerful features I’m missing, and how much boilerplate code I need to write.

                    One day, I have decided that I need to move on, so I started a new session in Leetcode and switched the compiler to Kotlin. I solved just a few easy problems, but I already feel that I have something to share.

                    Читать далее
                  • SIEM Solutions Overview (Security Information and Event Management)


                    Modern corporate IT infrastructure consists of many systems and components. And monitoring their work individually can be quite difficult — the larger the enterprise is, the more burdensome these tasks are. But there are the tools, which collect reports on the work of the entire corporate infrastructure — SIEM (Security Information and Event Management) system in one place. Read the best of such products according to Gartner experts in our review, and learn about the main features from our comparison table.
                    Read more →
                  • Making python's dream of multithreading come true

                      Intro


                      So you are writing some CPU-intensive code in Python and really trying to find ways out of its single-threaded prison. You might be looking towards Numba's "nopython parallel" mode, you might be using forked processes with multiprocessing, you might be writing microservices with database-like coordinators, or even writing your own multithreaded programs in C/C++ just like creators of TensorFlow did.


                      In this article I'm describing a rationale for my pet project where I try to implement facilities for general purpose multitasking to be used in a form of simple python code, employing a database-like approach for interpreters communication, while keeping the GIL (Global Interpreter Lock) and trying to be as pythonic as possible.



                      It could also become handy in the light of upcoming multiple interpreters support in CPython.


                      As far as I know, nobody came that far in trying to provide Python program with native shareable storage. The last closest attempt was Python Object Sharing which is pretty much dead by now. I hope my project won't meet the same fate.

                      Read more →
                    • How to rank higher on Google?

                      image

                      There are different approaches to manage construct a brand online, get leads and win in business. By the by, on the off chance that you know a smidgen at a time measure on the most proficient strategy to rank higher on Google first page nothing can stop your business developing expedient. Different SEO methodologies are basic when ranking on Google typically. Additionally, you head the centre insider real factors.

                      Once more thing you ought to have is consistent quality considering the route that in 2019 SEO requires some certified imperativeness and only the best page that gives the most spurring power to the clients will rank. Notwithstanding, for that, your site page ought to get made and more references must come towards the site page with backlinks. Backlinks are an inside factor to rank higher on Google search. After the On-page, SEO is done well, by and large, your next off-site SEO work begins with vault posting for citation building. It must be done by specialists and Dinesh is the world's best as for citation building.
                      Read more →
                    • Check how you remember nullable value types. Let's peek under the hood

                        image1.png

                        Recently nullable reference types have become trendy. Meanwhile, the good old nullable value types are still here and actively used. How well do you remember the nuances of working with them? Let's jog your memory or test your knowledge by reading this article. Examples of C# and IL code, references to the CLI specification, and CoreCLR code are provided. Let's start with an interesting case.
                        Read more →
                      • How to make integration with 50 suppliers and not get crazy

                        • Translation
                        There are many supplier types. Some suppliers ready to get your data format, another — don't; some use SOAP protocol, another — REST; some uses EAN for goods identification — another uses offer ID; some ready to give you order status, another — don't, some uses vocabulary, witch elements you need to map with your’ s master data, another — don't. Simply put — suppliers are extremely different.

                        However, we need to automate the data exchange. Now is the 21st century. In perfect world we need to found the B2B conference for suppliers and them customers (in auto part market in my case) and develop one data exchange format and be happy. Unfortunately, we live in imperfect world.
                        Read more →