• Пост для мотивации: как я инвестирую в акции

      дисклеймер


      • этот документ не является финансовым советом, прост личные мысли по поводу инвестиций, компаний
      • почему я инвестирую в компании, а не крипту/недвиж/крышечки от пива (крипта, недвиж и крышечки у меня, конечно, есть): цель коммерческих компаний — зарабатывать деньги, цель валюты/крышечек — быть средством обмена, а недвиж/etc — заморозить $ где-то вокруг инфляции, ну или как-то так, я инженер, а не экономист, сильно не бейте ¯*(ツ)*/¯
      • мои принципы инвестирования оч простые:
      Read more →
    • Espressif IoT Development Framework: 71 Shots in the Foot

        0790_Espressif_IoT_Development_Framework/image1.png
        One of our readers recommended paying heed to the Espressif IoT Development Framework. He found an error in the project code and asked if the PVS-Studio static analyzer could find it. The analyzer can't detect this specific error so far, but it managed to spot many others. Based on this story and the errors found, we decided to write a classic article about checking an open source project. Enjoy exploring what IoT devices can do to shoot you in the foot.

        Read more →
      • Creating Node.JS web server application with Express, Typescript, Jest, Swagger, log4js and routing-controllers

        • Translation
        This is a step by step instruction for creating Node.JS web server application with typescript and express. Creating of new web application on Node.JS is is not making often, so the steps how to do it can be forgotten. So this article is a kind of reminder for me and other developers. Also I added in article links to video clips for more clarification. Here I show how to create application on Node.JS without using any frameworks for it. Just Node.JS and packages.
        Read more →
      • Doing «Data Science» even if you have never heard the words before

          There’s a lot of talk about machine learning nowadays. A big topic – but, for a lot of people, covered by this terrible layer of mystery. Like black magic – the chosen ones’ art, above the mere mortal for sure. One keeps hearing the words “numpy”, “pandas”, “scikit-learn” - and looking each up produces an equivalent of a three-tome work in documentation.

          I’d like to shatter some of this mystery today. Let’s do some machine learning, find some patterns in our data – perhaps even make some predictions. With good old Python only – no 2-gigabyte library, and no arcane knowledge needed beforehand.

          Interested? Come join us.

          Read more
        • Top 10 Best Voice Chat APIs for Mobile and Web Apps

            Voice calling plays a crucial role in personal and professional communication. Be it a friendly conversation among classmates or a business deal between companies – voice calling has been the most easy, convenient, and affordable way to communicate for decades. Thus, communication corporations and developers have brought in innovative ways to integrate their Application Programming Interfaces (APIs) and invent newer ways of voice communication.

            Read More
          • What is one of the most common mistakes beginner developers make

              It may seem that when you are a beginner, you'll do simple things only. No need to learn data structures and algorithms. No need to understand Big O notation, complexity and stuff like that. 

              This couldn't be further away from the truth!

              In 2008, when I just started learning to program, I spent a lot of time reading books on PHP and MySQL. Months later, when I felt confident, I took my first freelance project. It was a real estate website. A simple one. I used a custom-made ORM and everything worked just fine!

              When I released it, the search feature quickly became sluggish and made the website unusable. 

              I was wondering what the heck had happened. I figured out that database queries became very slow when there were over 200 real estate objects added to it. 

              This is it. What worked fine during testing did not work in real life.

              I was a self-taught developer. I did not know how to measure if my project scaled well. I didn't even know that I had to do it.

              I thought algorithms mattered only for launching a spaceship.

              If I had some basic understanding of algorithms, I would have known that the more the input, the longer it takes. 

              I am not saying I would have come up with a robust solution as a junior, but I would have looked for a solution because I knew there would be a problem. 

              Please, don't make the same mistake!

              Of course, data structures and algorithms are much more than that and they apply differently depending on what you work on.

              But a basic understanding of data structures and algorithms is a must for every software developer. 

              Read more
            • Ant Design Component Customization and Bundle Optimization

                I'm Ivan Kopenkov, a senior front-end developer at Mail.ru Cloud Solutions. In this article, I will tell you about the approaches we have used for the UI library components customization. You will also learn how to significantly decrease bundle size, cutting off all the unnecessary modules Ant Design takes there.

                In our case, we are making wrappers for original Ant Design components inside the project, changing their appearance, and developing their logic. At the same time, we import both customized and original components right from the ant-design module. That saves tree shaking functionality and makes complex library components use our wrappers instead of original nested elements.

                If you are already or about to use Ant Design, this article will provide you with a better and more effective way to do so. Even if you have chosen another UI library, you might be able to implement these ideas.

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

                More
              • CLIP from OpenAI: what is it and how you can try it out yourself

                  Neural networks (NN) and computer vision models in particular are known to perform well in specific tasks, but often fail to generalize to tasks they have not been trained on. A model that performs well on a food data may perform poorly on satellite images. 

                  A new model from OpenAI named CLIP claims to close this gap by a large margin. The paper Open AI wrote presenting CLIP demonstrates how the model may be used on a various classification datasets in a zero-shot manner. 

                  In this article, I will explain the key ideas of the model they proposed and show you the code to use it. 

                  Read more
                • Modern Portable Voice Activity Detector Released

                    image


                    Currently, there are hardly any high quality / modern / free / public voice activity detectors except for WebRTC Voice Activity Detector (link). WebRTC though starts to show its age and it suffers from many false positives.


                    Also in some cases it is crucial to be able to anonymize large-scale spoken corpora (i.e. remove personal data). Typically personal data is considered to be private / sensitive if it contains (i) a name (ii) some private ID. Name recognition is a highly subjective matter and it depends on locale and business case, but Voice Activity and Number Detection are quite general tasks.


                    Key features:


                    • Modern, portable;
                    • Low memory footprint;
                    • Superior metrics to WebRTC;
                    • Trained on huge spoken corpora and noise / sound libraries;
                    • Slower than WebRTC, but fast enough for IOT / edge / mobile applications;
                    • Unlike WebRTC (which mostly tells silence from voice), our VAD can tell voice from noise / music / silence;
                    • PyTorch (JIT) and ONNX checkpoints;

                    Typical use cases:


                    • Spoken corpora anonymization;
                    • Can be used together with WebRTC;
                    • Voice activity detection for IOT / edge / mobile use cases;
                    • Data cleaning and preparation, number and voice detection in general;
                    • PyTorch and ONNX can be used with a wide variety of deployment options and backends in mind;
                    Read more →
                  • 10(+) years in the Labs

                      At the beginning of the year 2021, Qrator Labs is celebrating its 10 year anniversary. On January 19 our company marks the official passing of a formal 10 years longevity mark, entering its second decade of existence. 

                      Everything started a little bit earlier - when at the age of 10 Alex saw the Robotron K 1820 - in 2008, when Alexander Lyamin - the founder and CEO of Qrator Labs, approached the Moscow State University superiors, where he worked as a NOC engineer at the time, with an idea of a DDoS-attack mitigation research project. The MSU's network was one of the largest in the country and, as we know now, it was the best place to hatch a future technology.

                      That time MSU administration agreed, and Mr Lyamin took his own hardware to the university, simultaneously gathering a team. In two years, by summer 2010, the project turned out to be that successful. It courted the DDoS attack of a bandwidth exceeding the MSU's upstream bandwidth capability. And on June 22 MSU superiors gave Mr Lyamin a choice - to shut down or find money to incorporate.

                      Alexander Lyamin chose to incorporate with his own means, which effectively meant that the needed infrastructure must be built from scratch. The initial design should be distributed instead of concentrated within one network, which resources were not enough for this specific task. And by September 1, 2010, those first server sites were ready and running.

                      Flashback with us
                    • Flutter 1.22 Launched: Will it be a Gain or Pain for Businesses?

                        image

                        Flutter with extensive support from iOS 14 and Android 11 released its newest version 1.22 in October last year. The release is primarily meant to focus on the fact that Android 11 and iOS 14 works great with Flutter.

                        Businesses are still in a dilemma to choose the best cross-platform framework between Flutter and React Native. But with the release of Flutter 1.22, they have realized that Flutter must be the top pick for them as well as the developers because it supports the new mobile OS versions.

                        The new version comes packed with iOS 14, Android 11, new i18, and l10n support. While these were the OS supports, there is much more it has to offer which includes Google Maps, WebView Plugins, a new app size tool, etc.

                        While the race to choose the best framework will continue to exist, here we will see how the Flutter 1.22 launch will be a boon for the businesses out there?
                        Read more →
                      • Passcode Data Protection by Using FPGA and Verilog

                          There are many situations when you need to protect your data, and different tools can be used to do that. For example, a safe. We develop a passcode data protection mechanism by using an FPGA board and Quartus Prime software. It allows demonstrating the basic concepts of a combination lock such as entering data, setting and checking a passcode, and displaying data.

                          Read more
                        • Active Restore: Beginning UEFI development

                          • Translation

                          This is a translation with minor changes from the original post according to advice from comments.


                          Hello, folks! We have studied the boot sequence of the Windows operating system as part of a project from Acronis with students of Innopolis University. You can find more about the project here and there. There was an idea to execute the logic even before the boot sequence of the OS. Therefore, we tried to write something just to try, for a smooth immersion in UEFI. In this article, we will go through the theory and practice to read and write to disk in a pre-OS environment.


                          cover

                          Read more →
                        • Robotic Floor Washer

                          • Tutorial

                          When we think about robots, the first thing that comes to mind are robotic vacuum cleaners. The reason is simple: they are the most "solid" demonstration of success of "consumer" robotics. So making one sounds like a good idea... at first.

                          But isn't it a bit counter productive - to build something that popular, something we can buy in a store at a commodity (small) price? Should we build something similar, but NOT a vacuum cleaner? Something like... a floor washer, perhaps? Yes, a robotic floor washer.

                          In this tutorial I am going to build a fully working prototype of a robotic floor washer. By "fully working" I mean that it is going to wash floor, instead of moving dirt around like most robotic "moppers" do. While by "prototype" I mean it is going to be the first step towards production-ready unit, but not a production-ready unit yet. Let me explain.

                          First of all, it is not going to be THAT solid. You can grab a robotic vacuum cleaner that you got from the store by any part, including wheels and bumper and lift it. It will not fall apart. Ours probably will. The reason is, to make a device "mechanically solid" is a separate task, and if we focus on it, then "robotic" tasks will become more difficult to achieve. So we are going to do what engineers usually do: first they build C3PO without the outside body, wires everywhere and so on. And only then they put a gold-covered outfit on it.

                          Читать далее
                        • Android interop with SWIG (a guide). From simple to weird. Part 1 — simple

                          SWIG is a tool for generating cross-language interfaces - it provides interoperability of C++ and other languages (C++ and Java in our case). SWIG just simplifies and automizes cross-language interaction; otherwise, you may end up with thousands of lines of handwritten JNI code - but SWIG covers this for you.

                          This guide is for newbies (Part 1) and for those who experienced in SWIG (part 2). I'm starting from basic setup and usage and ending with complex & weird cases encountered in development. The latter cases are not so complex, rather usual for modern languages, which SWIG doesn't support yet (as lambdas).

                          This guide is practical. In opposition to overcomplicated huge-volume SWIG documentation, this guide is showing the cases practically. The bits developed by myself while working on the different projects or taken from StackOverflow. This guide allows you to quick-start an Android Studio project and giving practical examples of using SWIG. The link to the Android Studio project is here.

                          This guide is Android-first. The goal was to make it simple to onboard for Android developers. There are many articles about SWIG, but they are mainly for desktop Java applications, and it is quite an overhead to just try them on Android to check if the solution for the particular problem is working. While this guide includes an Android Studio project, with which you can play around instantly. Of course, all the information given here applies to any Java application.

                          Warning! I should warn you, that nowadays cross-platform development offers powerful tools. If you are developing a new application it is much more cost-efficient in practice to use ReactNative, Flutter of Kotlin-Native than the SWIG. While SWIG is more suitable to connect the C++ library or existing C++ application core.

                          Read more
                        • GTK: The First Analyzer Run in Figures

                            For some people, the introduction of a static analyzer into a project seems like an insurmountable obstacle. It is widely believed that the amount of analysis results issued after the first run is so large that only two options seem reasonable: do not mess with it at all or refocus all people on fixing warnings. In this article, we will try to dispel this myth by implementing and configuring the analyzer on a GTK project.

                            Читать далее
                          • Startups going global: a guide to Product Hunt

                              Product Hunt is a Y-combinator backed discovery platform, founded by Ryan Hoover in 2013. Conceived as an email list, it has gone on to become one of the most popular directories, raised $7.5 million in backing and was acquired by AngelList — a social network for entrepreneurs — in December 2016.

                              Exposure on the platform contributed to viral successes of Yo and Ship Your Enemies Glitter, and brought multi-million dollar companies, like Robinhood and Gimlet Media, to the public eye.

                              Continue Reading
                            • Tarantool: an analyst's view

                                Hi all! I'm Andrey Kapustin. I work as a system analyst at Mail.ru Group. Our products form a unified ecosystem. Many independent infrastructures generate data in it: taxi and food delivery services, email services, social networks, etc. The faster and more precise we can predict a client's needs, the sooner and more correctly we can offer our products. 

                                Many system analysts and engineers are keen to know: 

                                1. How to design the architecture of a trigger platform for real-time marketing?
                                2. How to arrange a data structure that would be in line with the requirements of a marketing strategy for interacting with clients?
                                3. How to ensure the stable operations of the  system under very heavy workloads? 

                                Such systems are based on technologies of high-load processing and Big Data analysis. We have accumulated considerable experience in these areas. Our expertise is in high demand on the market.  I'm going to show how we help our customers to switch from off-line to on-line in their interactions with clients using Real-Time Marketing solutions based on Tarantool.
                                Read more →