• Introducing Orleans 3.0

      This is a guest post from the Orleans team. Orleans is a cross-platform framework for building distributed applications with .NET. For more information, see https://github.com/dotnet/orleans.

      We are excited to announce the Orleans 3.0 release. A great number of improvements and fixes went in, as well as several new features, since Orleans 2.0. These changes were driven by the experience of many people running Orleans-based applications in production in a wide range of scenarios and environments, and by the ingenuity and passion of the global Orleans community that always strives to make the codebase better, faster, and more flexible. A BIG Thank You to all who contributed to this release in various ways!

      Read more →
    • Apply Nix-Shell environment in Visual Studio Code

      • Tutorial


      A lot of developers faced a problem with packages hell on their workstation. After a couple of months with experiments, including different languages and toolchains, I installed Elixir, Haskell-stack, Node.js/NVM, and other various stuff. Most exciting things happen when you need different versions of the same package for different projects. Humanity already invented a different solution for creating an isolated environment and switch them when needed. We are using NVM to manage Node.js versions, Python Virtual Env for selecting Python stuff versions or Docker for creating OS inside an OS. But none of the solutions satisfy all my requirements for the isolated development environment.
      Read more →
    • SpaceFusion: Structuring the unstructured latent space for conversational AI

        A palette makes it easy for painters to arrange and mix paints of different colors as they create art on the canvas before them. Having a similar tool that could allow AI to jointly learn from diverse data sources such as those for conversations, narratives, images, and knowledge could open doors for researchers and scientists to develop AI systems capable of more general intelligence.


        A palette allows a painter to arrange and mix paints of different colors. SpaceFusion seeks to help AI scientists do similar things for different models trained on different datasets.
        Read more →
      • How elliptic curve cryptography works in TLS 1.3

          image

          A couple of reader alerts:

          In order to (somewhat) simplify the description process and tighten the volume of the article we are going to write, it is essential to make a significant remark and state the primary constraint right away — everything we are going to tell you today on the practical side of the problematics is viable only in terms of TLS 1.3. Meaning that while your ECDSA certificate would still work in TLS 1.2 if you wish it worked, providing backwards compatibility, the description of the actual handshake process, cipher suits and client-server benchmarks covers TLS 1.3 only. Of course, this does not relate to the mathematical description of algorithms behind modern encryption systems.

          This article was written by neither a mathematician nor an engineer — although those helped to find a way around scary math and reviewed this article. Many thanks to Qrator Labs employees.

          (Elliptic Curve) Diffie-Hellman (Ephemeral)

          The Diffie–Hellman legacy in the 21 century

          Of course, this has started with neither Diffie nor Hellman. But to provide a correct timeline, we need to point out main dates and events.

          There were several major personas in the development of modern cryptography. Most notably, Alan Turing and Claud Shannon both laid an incredible amount of work over the field of theory of computation and information theory as well as general cryptanalysis, and both Diffie and Hellman, are officially credited for coming up with the idea of public-key (or so-called asymmetric) cryptography (although it is known that in the UK there were made serious advances in cryptography that stayed under secrecy for a very long time), making those two gentlemen pioneers.

          In what exactly?
          Read more →
        • Impact of IoT in Mobile app development

            IoT becomes the most popular technology nowadays. We have already started to see the result of this fast-emerging technology in various areas of our lives, the way we think and the way we work. The realtime indications of this technology spread across various industries which include Energy, Manufacturing, Healthcare, and Agriculture. With the fast-emergence and influence of Smart Homes and Smart wearables, Smart Cars, Smart Cities, Smart Retail Outlets, IoT is gradually but constantly plays a major role in our day-to-day lives.

            IoT plays a significant role in mobile app development as the smartphone used as a remote controller, Switches, and health checkup devices with the help of IoT.
            Read more →
          • Content Localization Strategies

            • Translation


            Setting up the content localization and, thus, configuring the interface language of the product in such a way that the right language is rendered to the right user is extremely important for each digital platform. That’s why we have decided to translate and share with you this expert article by Nicolai Goshin from Hellicht Medien.


            And we strongly hope that some strategic points would be valuable for your localization projects!


            Background and preliminary considerations


            Digital projects targeting audiences in different countries or different language areas are doomed to take advantage of localization strategies. So we must answer the following question: which users should be given which content in which languages? The question at the first sight seems simple. But later in this article we will point out why this topic is, in fact, complex. And, of course, we will also address how to deal with this complexity.


            Let's assume a scenario in which content (for example, an online magazine) is available in three languages: German, English, and Arabic. The goal is ideally to provide content to each user in their native language. If this is not possible, the content should be provided to the user in the language that they best understand apart from their mother tongue.

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

            More
            Ads
          • Datacenter TCP explained

              Modern networking contains a number of improvements over the basic TCP/IP stack. One of this, particularly useful inside datacenter was developed by Microsoft Research in 2010 and called, surprisingly, DataCenter TCP (DCTCP).

              DCTCP is a set of modification to TCP, targeting to fulfill two properties:
              1. Improve latency for latency-sensitive small messages
              2. Not to decrease the throughput for throughput-sensitive big flows
              Read more →
            • Upcoming SameSite Cookie Changes in ASP.NET and ASP.NET Core

                SameSite is a 2016 extension to HTTP cookies intended to mitigate cross site request forgery (CSRF). The original design was an opt-in feature which could be used by adding a new SameSite property to cookies. It had two values, Lax and Strict.

                Setting the value to Lax indicated the cookie should be sent on navigation within the same site, or through GET navigation to your site from other sites. A value of Strict limited the cookie to requests which only originated from the same site. Not setting the property at all placed no restrictions on how the cookie flowed in requests. OpenIdConnect authentication operations (e.g. login, logout), and other features that send POST requests from an external site to the site requesting the operation, can use cookies for correlation and/or CSRF protection. These operations would need to opt-out of SameSite, by not setting the property at all, to ensure these cookies will be sent during their specialized request flows.

                Google is now updating the standard and implementing their proposed changes in an upcoming version of Chrome. The change adds a new SameSite value, «None», and changes the default behavior to «Lax». This breaks OpenIdConnect logins, and potentially other features your web site may rely on, these features will have to use cookies whose SameSite property is set to a value of «None».

                However browsers which adhere to the original standard and are unaware of the new value have a different behavior to browsers which use the new standard as the SameSite standard states that if a browser sees a value for SameSite it does not understand it should treat that value as «Strict». This means your .NET website will now have to add user agent sniffing to decide whether you send the new None value, or not send the attribute at all.

                Read more →
              • Optimising server distribution across the racks

                  Recently, a colleague asked me in a chat:

                  — Is there an article how to pack servers into the racks properly?

                  I realised that I'm unaware of it. So, I decided to write my text.

                  Firstly, this is an article about bare metal servers in the data centre (DC) facilities. Secondly, we estimate that there are a lot of servers (hundreds or thousands); the article doesn't make sense for fewer quantities. Thirdly, we consider that there are three constraints in the racks: physical space, electric power per each one, and cabinets stay in the rows adjacent to each other, so we can use a single ToR switch to connect servers in them.
                  The answer to the original question depends significantly...
                • Technology and the real world: 4 Start-ups that are changing the future of interior design

                    image

                    Internet and new tech are currently disrupting many industries, even some that you might not think are prone to such changes. For interior design, which may seem like an utterly offline and personal thing, many people have become accustomed to sharing their homes with strangers across the world for inspiration and to simply show off their style.

                    Here is a comprehensive list of startups that are changing the whole interior design industry and making everything quicker, more affordable, and more convenient for customers. Let's check them out!
                    Read more →
                  • On request of Embedded Developers: Detecting Errors in Amazon FreeRTOS

                      Anyone who programs microcontrollers probably knows about FreeRTOS, or at least heard of this operating system. Amazon developers decided to enhance the abilities of this operating system to work with AWS Internet of Things services. This is how Amazon FreeRTOS appeared. We, developers of the PVS-Studio static code analyzer, were asked by mail and in comments to check these projects. Well, now get what you asked for. Keep reading to find out what came out of it.


                      Read more →
                    • Now is the time to make a fresh new Windows Terminal profiles.json

                        I've been talking about it for months, but in case you haven't heard, there's a new Windows Terminal in town. You can download it and start using it now from the Windows Store. It's free and open source.

                        At the time of this writing, Windows Terminal is around version 0.5. It's not officially released as a 1.0 so things are changing all the time.

                        Here's your todo - Have you installed the Windows Terminal before? Have you customize your profile.json file? If so, I want you to DELETE your profiles.json!

                        Read more →
                      • Importance of User Interface (UI) & User Experience (UX) in Software & Mobile App Development

                          A user interface is nothing but how a user interacts with the device. The key to having a good user interface is to make the customer intuitively know how to use the device with little to no help. An interactive and intuitive user interface design goes a long way in making sure this happens.

                          Why is it important to have a good UI/UX design


                          Whether it is about using the self-service checkout machines, mobile apps or online shop, a thoughtlessly designed interface design that is not intuitive for its users may have the users abandoning their session with frustration, ending up buying nothing from your store. Your effort to optimize the user interface design can make a huge difference to the sales conversions happening on your platform. For all the consumer-facing applications, the design must be intuitive or there is a risk of shopping cart abandonment, however, for enterprise applications, it used not to be a primary requisite. As long as it was possible to perform the job, the user interface design could be less intuitive too. This is what was conventionally believed and followed. In the modern competitive times, things have changed, however. In times when we are surrounded by smart and intuitive applications, enterprise users also need to be treated as the consumers of the applications who would prefer to use an intuitive and easy-to-use application.
                          Read more →
                        • Blazor Server in .NET Core 3.0 scenarios and performance

                            Since the release of Blazor Server with .NET Core 3.0 last month lots of folks have shared their excitement with us about being able to build client-side web UI with just .NET and C#. At the same time, we’ve also heard lots of questions about what Blazor Server is, how it relates to Blazor WebAssembly, and what scenarios Blazor Server is best suited for. Should you choose Blazor Server for your client-side web UI needs, or wait for Blazor WebAssembly? This post seeks to answer these questions, and to provide insights into how Blazor Server performs at scale and how we envision Blazor evolving in the future.

                            What is Blazor Server?


                            Blazor Server apps host Blazor components on the server and handle UI interactions over a real-time SignalR connection. As the user interacts with the app, the UI events are sent to the server over the connection to be handled by the various components that make up the app. When a component handles a UI event, it’s rendered based on its updated state. Blazor compares the newly rendered output with what was rendered previously and send the changes back to the browser and applies them to the DOM.

                            Read more →
                          • A City Without Traffic Jams


                              Chapter 2.
                              (the link to Chapter 1)

                              The Art of Designing Road Networks


                              Transport problems of a city through the eyes of a Computer Scientist


                              If I were recommended an article with the title “The Art of Designing Road Networks,” I would immediately ask how many road networks were built with the participation of its author. I must admit, my professional activity was far from road construction and was recently associated with the design of microprocessors where I, among other responsibilities, was engaged in the resource consumption of data switching. At that time my table stood just opposite the panoramic window which opened up a beautiful view of the long section of the Volgograd Highway and part of the Third Transport Ring with their endless traffic jams from morning to evening, from horizon to horizon. One day, I had a sudden shock of recognition: “The complexities of the data switching process that I struggle with on a chip may be similar to the difficulties the cars face as they flow through the labyrinth of road network”.
                              Probably, this view from the outside and the application of methods that were not traditional for the area in question gave me a chance to understand the cause of traffic jams and make recommendations on how to overcome the problem in practice.
                              Read more →
                            • A Guide to Understand the Concept of Modern Web App Development



                                Millions of businesses exchange information on the internet and to interact with their target audience. This helps them make fast and secure transactions over the web. However, business goals can be achieved when the businesses are able to store all this data for the means of presenting quality output to the end users.

                                Simply put, in the development industry a web application (or “web app”) is more like a program that uses a web browser to handle the storage and retrieval of the information to present information to the users. This allows a user to interact with the company using the online forms, e-shopping carts, CMS, etc. Some more examples of web applications are online banking, online polls, online forums, online reservations, shopping cart, and interactive games.

                                Learning about web development is kind of like having too many things on a plate. This guide serves as a way to get your acquainted with the world of web app development.
                                Read more →