• Announcing .NET Core 3.0 Preview 6

      Today, we are announcing .NET Core 3.0 Preview 6. It includes updates for compiling assemblies for improved startup, optimizing applications for size with linker and EventPipe improvements. We’ve also released new Docker images for Alpine on ARM64.



      Read more →
    • How to Achieve a Balance in Product Management With the Lean Prioritization?

        Dealing with priorities is a constant necessity in product management and development processes. In order to improve professional skills, product managers should find time to explore and try using simple and complex methods and frameworks to determine priorities.

        The Lean Prioritization approach is one of the simplest and most accessible methods that help product managers with managing task backlog, especially when it needs to be done quickly and efficiently. This post is about the power of Lean Prioritization.

        image
        Read more →
      • Bluetooth stack modifications to improve audio quality on headphones without AAC, aptX, or LDAC codecs

          Before reading this article, it is recommended to read the previous one: Audio over Bluetooth: most detailed information about profiles, codecs, and devices / по-русски

          Some wireless headphone users note low sound quality and lack of high frequencies when using the standard Bluetooth SBC codec, which is supported by all headphones and other Bluetooth audio devices. A common recommendation to get better sound quality is to buy devices and headphones with aptX or LDAC codecs support. These codecs require licensing fees, that's why devices with them are more expensive.

          It turns out that the low quality of SBC is caused by artificial limitations of all current Bluetooth stacks and headphones' configuration, and this limitation can be circumvented on any existing device with software modification only.
          Read more →
          • +20
          • 25.2k
          • 3
        • Audio over Bluetooth: most detailed information about profiles, codecs, and devices

            XKCD comic. How standards proliferate. SITUATION: there are 14 competing standards. Geek: 14?! Ridiculous! We need to develop one universal standard that covery everyone's use cases. Geek's girlfriend: yeah! SOON: Situation: there are 15 competing standards.

            This article is also available in Russian / Эта статья также доступна на русском языке

            The mass market of smartphones without the 3.5 mm audio jack changed headphones industry, wireless Bluetooth headphones have become the main way to listen to music and communicate in headset mode for many users.
            Bluetooth device manufacturers rarely disclose detailed product specifications, and Bluetooth audio articles on the Internet are contradictory and sometimes incorrect. They do not tell about all the features, and often publish the same false information.
            Let's try to understand the protocol, the capabilities of Bluetooth stacks, headphones and speakers, Bluetooth codecs for music and speech, find out what affects the quality of the transmitted audio and the delay, learn how to capture and decode information about supported codecs and other device features.

            TL;DR:

            • SBC codec is OK
            • Headphones have their own per-codec equalizer and post processing configuration
            • aptX is not as good as the advertisements say
            • LDAC is a marketing fluff
            • Voice audio quality is still low
            • Browsers are able to execute audio encoders compiled to WebAssembly from C using emscripten, and they won't even lag.

            Read more →
            • +22
            • 161k
            • 9
          • PVS-Studio Graph of Diagnostic Abilities Development

              Maturation

              More than 8 years have passed since the PVS-Studio product was released, and all this time we've been implementing new diagnostic rules in it. Moreover, we are not going to stop. If you care about whether we have lost our vivacity over the years, and whether PVS-Studio stops developing, the graph given in the article will take this issue off the table. The analyzer is actively developing, and the speed of development only increases over the years.
              Read more →
            • Protocol for communication between iframe and the main window

              • Translation

              From time to time, developers need to establish communication between several browser tabs to be able to send messages from one tab to another and receive responses. We have also faced this need at some point.


              Some solutions already exist (like, for instance, BroadcastChannel API). However, its browser support leaves a lot to be desired, so we decided to use our own library. When the library was ready, that functionality was no longer required. Nevertheless, another task emerged: communication between an iframe and the main window.


              On closer examination, it turned out that two-thirds of the library would not have to be changed — only some code refactoring was necessary. The library is a communication PROTOCOL that can work with text data. It can be applied in all cases in which text is transferred, such as iframes, window.open, worker, browser tabs or WebSocket.


              How it works


              Currently, the protocol has two functions: sending messages and subscription to events. Any message in the protocol is a data object. For us, the main field in that object is type, which tells us what kind of message it is. The type field is an enum with the following values:

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

              More
            • Grow Your Revenue Using In-app Purchases

                In 2019, things are going to shake up particularly with regards to in-app purchases and the best approach. In the event that you are eyeing to procure great income from these administrations, at that point you should look at the tips underneath.

                Introduce Timely Discounts

                Given the relentless challenge in the Mobile app world, it is significant that you venture up your game. One of the techniques that you can actualize is having constrained time offers. In doing this, you get the chance to publicity the item or administrations among versatile app clients. The time factor is likewise vital as you don't wish to overstretch the markdown offers.

                Besides, you have to bring on board mastery to enable you to think in transit forward with regards to the limits. Keep in mind, you should be strategic in request to gain more income and clients.

                Adventure into Partnerships

                It is anything but difficult to fly solo with regards to Mobile apps however you can't neglect the need accomplices. As you advance your items and administrations, it is significant that liaise with substances that can support your incomes.

                In any case, picking the best corporate to connect with is no stroll in the recreation center. You will be required to investigate how their items/administrations can enable you to manufacture your image. Under this, you may have joint effort between an application for wearable emergency clinic gadgets and social insurance association. The outcome will be an increase in the number of clients accessing the in-app purchases.

                Besides this, you may pick to package together at least two items under your image when pushing the in-app purchases.
                Read more →
              • The Data Structures of the Plasma Cash Blockchain's State

                • Tutorial


                Hello, dear Habr users! This article is about Web 3.0 — the decentralized Internet. Web 3.0 introduces the concept of decentralization as the foundation of the modern Internet. Many computer systems and networks require security and decentralization features to meet their needs. A distributed registry using blockchain technology provides efficient solutions for decentralization.
                Read more →
              • Top 5 mobile app development companies in the UK

                  image

                  According to Evans Data Corporation, there are 12 million developers in the world. About 350,000 of these software and mobile developers work and live in the UK including freelancers and IT employees.

                  How do you choose the best one among all this variety? The obvious answer — get going with a professional IT company. This will increase your chances to work with true professionals.

                  I’ve made my own research based on a variety of reliable resources like Google SERPs and user’s reviews, different independent media, including medium.com and aggregators, like businessofapps.com, Clutch, etc. and other independent sites. Based on the collected data, I’ve aggregated the total score for each of the 25 leaders, and here I represent a list of the winners: the top 5 software developers in the UK.
                  Read more →
                • Who put Python in the Windows 10 May 2019 Update?

                    Some days ago the Windows team announced the May 2019 Update for Windows 10. In this post we’re going to look at what we, the Python team, have done to make Python easier to install on Windows by helping the community publish to the Microsoft Store and, in collaboration with Windows, adding a default “python.exe” command to help find it. You may have already heard about these on the Python Bytes podcast, at PyCon US, or through Twitter.


                    The header of the Python 3.7 page in the Microsoft Store
                    Read more →
                  • The Art of Prioritization: How to Choose Right Features for Development

                      What is prioritization about? Product managers will agree that it’s rather critical to choose the right features for development, filter the most important of them and skip less urgent ones. This is all about the art of prioritization.

                      If you are not sure about your prioritization skills and want to get more, this quick guide will assist to discover how to find the evaluation criteria for your product and how to select appropriate strategic growth metrics. You will also find out how to offer more value to customers and establish all internal processes inside your team with the help of prioritization methods.

                      image
                      Read more →
                    • Essential on-site SEO factors

                        With this post, I start a series of SEO related articles where I'm going to share my 11+ years experience in SEO to help you understand better how it works. The top-rated comment on Reddit in the post I saw last week What do you wish developers knew about SEO? was: «The most dangerous thing in SEO is a developer that thinks he understands SEO. They so rarely do». So this article is for developers who want to deliver a better SEO for clients and SEO beginners, as well as for the entrepreneurs, who are about to hire an SEO agency. You need to understand, why some sites are on top in search results and some will never be there.

                        on-site SEO factors
                        Read more →
                      • The one who resurrected Duke Nukem: interview with Randy Pitchford, magician from Gearbox

                          RUVDS and Habr continue the series of interviews with interesting people in IT field. Last time we talked to Richard «Levelord» Gray, level designer of popular games Duke Nukem, American McGee’s Alice, Heavy Metal F.A.K.K.2, SiN, Serious Sam, author of well-known «You’re not supposed to be here» phrase.

                          Today we welcome Randall Steward «Randy» Pitchford II, president, CEO and co-founder of Gearbox Software video game development company.

                          Randy started in 3D Realms where contributed to Duke Nukem 3D Atomic Edition and Shadow Warrior. Then he founded Gearbox Software and made Half-Life: Opposing Force, which won D.I.C.E in 2000. Other Gearbox titles include Half-Life: Blue Shift, Half-Life: Decay, Counter-Strike: Condition Zero, James Bond 007: Nightfire, Tony Hawk's Pro Skater 3, Halo: Combat Evolved and of course Borderlands.

                          The interview team also includes editor of Habr Nikolay Zemlyanskiy, Richard «Levelord» Gray, Randy’s wife Kristy Pitchford and Randy’s son Randy Jr.


                          Read more →
                        • How to Choose the Best Project Management Tool If You Are a Millennial?

                            The role of project management is becoming more and more relevant no matter in which area or industry it is implemented. In fact, it balances all project processes and steps and helps project teams meet their goals and objectives.

                            Project management helps to reach goals faster, cheaper and avoid risks thereby contributing greatly to business strategy execution. More companies cannot imagine their performance success without project management as one of the key business competencies. Since this competence is actively developing, professional project management software is also evolving with it in the same way.

                            image
                            Read more →
                          • Indexes in PostgreSQL — 10 (Bloom)

                            • Translation
                            In the previous articles we discussed PostgreSQL indexing engine and the interface of access methods, as well as hash indexes, B-trees, GiST, SP-GiST, GIN, RUM, and BRIN. But we still need to look at Bloom indexes.

                            Bloom


                            General concept


                            A classical Bloom filter is a data structure that enables us to quickly check membership of an element in a set. The filter is highly compact, but allows false positives: it can mistakenly consider an element to be a member of a set (false positive), but it is not permitted to consider an element of a set not to be a member (false negative).

                            The filter is an array of $m$ bits (also called a signature) that is initially filled with zeros. $k$ different hash functions are chosen that map any element of the set to $k$ bits of the signature. To add an element to the set, we need to set each of these bits in the signature to one. Consequently, if all the bits corresponding to an element are set to one, the element can be a member of the set, but if at least one bit equals zero, the element is not in the set for sure.

                            In the case of a DBMS, we actually have $N$ separate filters built for each index row. As a rule, several fields are included in the index, and it's values of these fields that compose the set of elements for each row.

                            By choosing the length of the signature $m$, we can find a trade-off between the index size and the probability of false positives. The application area for Bloom index is large, considerably «wide» tables to be queried using filters on each of the fields. This access method, like BRIN, can be regarded as an accelerator of sequential scan: all the matches found by the index must be rechecked with the table, but there is a chance to avoid considering most of the rows at all.
                            Read more →
                          • Must-Have Mobile Application Animations

                              The animation is at the heart of mobile app User experience (UX). Truth be told, energized changes quietly impart an assortment of messages and show the client the best way to explore through the mobile app by just coordinating the client's consideration.

                              For instance, liveliness can signify a connection between shared components. They can likewise be fundamental in demonstrating the progression between two states or direct the client's thoughtfulness regarding a suggestion to take action catch.

                              Such powerful development in mobile apps is dependably a utilitarian segment as opposed to adornments like structure components. Thus, movement in the UX configuration ought to be approached from the earliest starting point when the group designs the client's voyage.

                              At the point when the impact and ease of use of enlivened components are broken down during the QA testing stage, these changes can likewise be wiped out on the off chance that they neglect to convey a positive effect.

                              Vivified connections can make consistent cooperative energy between screens or realize a snapshot of progress. For instance, these activities can be any or the majority of the accompanying:

                              • Check the container
                              • Explore to another page
                              • Open settings
                              • Give framework status
                              • Communicate something specific

                              The above is only a glimpse of something larger. So as we quickly approach the finish of 2018, we should investigate the three most blazing mobile app movement inclines that are upgrading UX no matter how you look at it.
                              Read more →
                            • .NET: Tools for working with multi-threading and asynchrony – Part 1

                                I have originally posted this article in CodingSight blog
                                The second part of the article is available here

                                The need to do things in an asynchronous way – that is, dividing big tasks between multiple working units – was present long before the appearance of computers. However, when they did appear, this need became even more obvious. It is now 2019, and I’m writing this article on a laptop powered by an 8-core Intel Core CPU which, in addition to this, is simultaneously working on hundreds of processes, with the number of threads being even larger. Next to me, there lies a slightly outdated smartphone which I bought a couple of years ago – and it also houses an 8-core processor. Specialized web resources contain a wide variety of articles praising this year’s flagship smartphones equipped with 16-core CPUs. For less then $20 per hour, MS Azure can give you access to a 128-core virtual machine with 2 TB RAM. But, unfortunately, you cannot get the most out of this power unless you know how to control interaction between threads.
                                Read more →