• Finally! PVS-Studio Supports .NET 5 Projects

      On November 10th, 2020, Microsoft released a new version of .NET Core - .NET 5. The updated platform presents many new enhancements. For example, it allows C# developers to use features the new C# 9 offers: records, relational pattern matching, etc. Unfortunately, there was a disadvantage: PVS-Studio could not analyze these projects. However (and here's the good news)... That used to be the case :) Our next release, PVS-Studio 7.13, will support projects that target .NET 5.

      Read more
    • You are standing at a red light at an empty intersection. How to make traffic lights smarter?

        Types of smart traffic lights: adaptive and neural networks

        Adaptive works at relatively simple intersections, where the rules and possibilities for switching phases are quite obvious. Adaptive management is only applicable where there is no constant loading in all directions, otherwise it simply has nothing to adapt to – there are no free time windows. The first adaptive control intersections appeared in the United States in the early 70s of the last century. Unfortunately, they have reached Russia only now, their number according to some estimates does not exceed 3,000 in the country.

        Neural networks – a higher level of traffic regulation. They take into account a lot of factors at once, which are not even always obvious. Their result is based on self-learning: the computer receives live data on the bandwidth and selects the maximum value by all possible algorithms, so that in total, as many vehicles as possible pass from all sides in a comfortable mode per unit of time. How this is done, usually programmers answer – we do not know, the neural network is a black box, but we will reveal the basic principles to you…

        Adaptive traffic lights use, at least, leading companies in Russia, rather outdated technology for counting vehicles at intersections: physical sensors or video background detector. A capacitive sensor or an induction loop only sees the vehicle at the installation site-for a few meters, unless of course you spend millions on laying them along the entire length of the roadway. The video background detector shows only the filling of the roadway with vehicles relative to this roadway. The camera should clearly see this area, which is quite difficult at a long distance due to the perspective and is highly susceptible to atmospheric interference: even a light snowstorm will be diagnosed as the presence of traffic – the background video detector does not distinguish the type of detection.

        Read more
      • Data Science Digest — 21.04.21

          Hi All,

          I’m pleased to invite you all to enroll in the Lviv Data Science Summer School, to delve into advanced methods and tools of Data Science and Machine Learning, including such domains as CV, NLP, Healthcare, Social Network Analysis, and Urban Data Science. The courses are practice-oriented and are geared towards undergraduates, Ph.D. students, and young professionals (intermediate level). The studies begin July 19–30 and will be hosted online. Make sure to apply — Spots are running fast!

          If you’re more used to getting updates every day, follow us on social media:

          Telegram
          Twitter
          LinkedIn
          Facebook

          Regards,
          Dmitry Spodarets.

          Read more
        • Recovering Data of a Windows To Go Workspace

            Read more about this portable version of Windows: how to create and boot it. How to recover data with a Windows To Go drive, or from a drive containing the portable version of the operating system. Windows To Go is a new tool inside Windows 10 that can be used to create a portable version of the operating system on an external hard drive or a USB pen drive. Such operating system can be booted and used on any computer.

            image

            Read more →
          • Neural network Telegram bot with StyleGAN and GPT-2

              The Beginning


              So we have already played with different neural networks. Cursed image generation using GANs, deep texts from GPT-2 — we have seen it all.


              This time I wanted to create a neural entity that would act like a beauty blogger. This meant it would have to post pictures like Instagram influencers do and generate the same kind of narcissistic texts. \


              Initially I planned to post the neural content on Instagram but using the Facebook Graph API which is needed to go beyond read-only was too painful for me. So I reverted to Telegram which is one of my favorite social products overall.


              The name of the entity/channel (Aida Enelpi) is a bad neural-oriented pun mostly generated by the bot itself.


              One of the first posts generated by Aida

              Read more →
            • Data Science Digest — We Are Back

                Hi All,

                I have some good news for you…

                Data Science Digest is back! We’ve been “offline” for a while, but no worries — You’ll receive regular digest updates with top news and resources on AI/ML/DS every Wednesday, starting today.

                If you’re more used to getting updates every day, follow us on social media:

                Telegram - https://t.me/DataScienceDigest
                Twitter - https://twitter.com/Data_Digest
                LinkedIn - https://www.linkedin.com/company/data-science-digest/
                Facebook - https://www.facebook.com/DataScienceDigest/

                And finally, your feedback is very much appreciated. Feel free to share any ideas with me and the team, and we’ll do our best to make Data Science Digest a better place for all.

                Regards,
                Dmitry Spodarets.

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

                More
              • Qrator Labs' Value Partnership Programs

                  Why is it valuable to get into the Qrator Labs partnership program?

                  In Qrator Labs, we firmly believe that working together brings a better result. Which is the reason why, for years, we were trying to find meaningful partnerships with all kinds of companies. They either seek to provide their existing customers with the top-notch DDoS mitigation technology developed at Qrator Labs with many additional ecosystem solutions or want to succeed the other way around. By getting their product available for Qrator Labs' customers by integrating into the Qrator anycast filtering network.

                  Read more
                • Show me your settings and I will tell you who you are

                  • Translation
                  Today we will discuss the silver bullet of software development: the program settings.

                  Everybody understands what settings are, more or less. Every computer user is going to stumble upon them, eventually. But the user does not always end up a winner in this encounter. There are 3 major problems to tackle: it's hard to find the right setting, the required setting does not exist, and it's unclear what this or that setting's responsible for.

                  To understand this, let's first think about the origin of settings. In theory, settings provide a way for the developer to adapt a program to a certain use case. The users are different though, one wants it his way, another demands her own, and even though the differences are miniscule, the decision is left up to the user. As a result, you must know about user tasks and their goals to create the right settings window.

                  That's the theory so far. What about the practice?
                  Continuing is optional
                • Ugly API

                    In this article, I’d like to talk about the problems I faced while integrating an API for the HTTP protocol and share my experience in solving them.

                    - REST vs Non REST architecture

                    - Ignoring Header Accept: application/json

                    - Mixing JSON keys case types

                    - Different response to the same request

                    Читать далее
                  • Algorithms in Go: Bit Manipulation

                      This article is a part of Algorithms in Go series where we discuss common algorithmic problems and their solution patterns.


                      In this edition, we take a closer look at bit manipulations. Bit operations can be extremely powerful and useful in an entire class of algorithmic problems, including problems that at first glance does not have to do anything with bits.


                      Let's consider the following problem: six friends meet in the bar and decide who pays for the next round. They would like to select a random person among them for that. How can they do a random selection using only a single coin?



                      The solution to this problem is not particularly obvious (for me:), so let's simplify a problem for a moment to develop our understanding. How would we do the selection if there were only three friends? In other words, how would we "mimic" a three-sided coin with a two-sided coin?

                      Read more →
                    • GDB Tutorial for Reverse Engineers: Breakpoints, Modifying Memory and Printing its Contents

                      • Tutorial

                      GDB is THE debugger for Linux programs. It’s super powerful. But its user-friendliness or lack thereof can actually make you throw your PC out of the window. But what’s important to understand about GDB is that GDB is not simply a tool, it’s a debugging framework for you to build upon. In this article, I’m gonna walk you through GDB setup for reverse engineering and show you all of the necessary commands and shortcuts for your debugging workflow.

                      Читать далее
                    • Pitfalls in String Pool, or Another Reason to Think Twice Before Interning Instances of String Class in C#

                        As software developers, we always want our software to work properly. We'll do everything to improve the software quality. To find the best solution, we are ready to use parallelizing or applying any various optimization techniques. One of these optimization techniques is the so-called string interning. It allows users to reduce memory usage. It also makes string comparison faster. However, everything is good in moderation. Interning at every turn is not worth it. Further, I'll show you how not to slip up with creating a hidden bottleneck in the form of the String.Intern method for your application.

                        Read more
                      • 11 Kubernetes implementation mistakes – and how to avoid them


                          I manage a team that designs and introduces in-house Kubernetes aaS at Mail.ru Cloud Solutions. And we often see a lack of understanding as to this technology, so I’d like to talk about common strategic mistakes at Kubernetes implementation in major projects.

                          Most of the problems arise because the technology is quite sophisticated. There are unobvious implementation and operation challenges, as well as poorly used advantages, all of those resulting in money loss. Another issue is the global lack of knowledge and experience with Kubernetes. Learning its use by the book can be tricky, and hiring qualified staff can be challenging. All the hype complicates Kubernetes-related decision making. Curiously enough, Kubernetes is often implemented rather formally – just for it to be there and make their lives better in some way.

                          Hopefully, this post will help you to make a decision you will feel proud of later (and won’t regret or feel like building a time machine to undo it).
                          Read more →
                        • Go Quiz

                            In this series, we will be discussing interesting aspects and corner cases of Golang. Some questions will be obvious, and some will require a closer look even from an experienced Go developer. These question will help to deeper the understanding of the programming language, and its underlying philosophy. Without much ado, let's start with the first part.


                            Value assignment


                            What value y will have at the end of the execution?


                            func main() {
                                var y int
                                for y, z := 1, 1; y < 10; y++ {
                                    _ = y
                                    _ = z
                                }
                                fmt.Println(y)
                            }
                            

                            According to the specification,

                            Read more →
                          • Build (CI/CD) of non-JVM projects using gradle/kotlin

                              In some projects, the build script is playing the role of Cinderella. The team focuses its main effort on code development. And the build process itself could be handled by people who are far from development (for example, those responsible for operation or deployment). If the build script works somehow, then everyone prefers not to touch it, and noone ever is thinking about optimization. However, in large heterogeneous projects, the build process could be quite complex, and it is possible to approach it as an independent project. If however you treat the build script as a secondary unimportant project, then the result will be an indigestible imperative script, the support of which will be rather difficult.


                              In the previous post we looked at what criteria we used to choose the toolkit, and why we chose gradle/kotlin, and in this post we will take a look at how we use gradle/kotlin to automate the build of non-JVM projects. (There is also a Russian version.)


                              CI/CD (opensource.com)


                              Introduction


                              Gradle for JVM projects is a universally recognized tool and does not need additional recommendations. For projects outside of the JVM platform, it is also used. For instance, the official documentation describes usage scenarios for C++ and Swift projects. We use gradle to automate the build, test, and deployment of a heterogeneous project that includes modules in node.js, golang, terraform.

                              Read more →