• Why does Dodo Pizza need 250 developers?

    • Translation
    In autumn, we announced we were going to expand our IT team from 49 to 250 developers. And immediately we were buried under an avalanche of questions — mostly, people were interested why a pizza chain needs so many software engineers. How did we come up with such a number? So now I want to answer that.


    Read more →
  • Pentesting Azure  — Thoughts on Security in Cloud Computing

      A few months ago I worked with a customer on how a team should evaluate the security of their Azure implementation. I had never done a pentest(extensive security testing)on an Azure application before, so these ideas were just the thoughts off of the top of my head at that time based on my experience in security.

      Matt Burrough’s book, Pentesting Azure Applications, goes even deeper and it is a must-read for security experts focused in Cloud Computing, I’m reading it right now.

      Below I share with you these pre-book thoughts, and will compare them in a future article with the ones I will learn — or confirm — after reading Matt's book.

      Read more →
    • Indexes in PostgreSQL — 1

      • Translation

      Introduction


      This series of articles is largely concerned with indexes in PostgreSQL.

      Any subject can be considered from different perspectives. We will discuss matters that should interest an application developer who uses DBMS: what indexes are available, why there are so many different types of them, and how to use them to speed up queries. The topic can probably be covered in fewer words, but in secrecy we hope for a curious developer, who is also interested in details of the internals, especially since understanding of such details allows you to not only defer to other's judgement, but also make conclusions of your own.

      Development of new types of indexes is outside the scope. This requires knowledge of the C programming language and pertains to the expertise of a system programmer rather than an application developer. For the same reason we almost won't discuss programming interfaces, but will focus only on what matters for working with ready-to-use indexes.

      In this article we will discuss the distribution of responsibilities between the general indexing engine related to the DBMS core and individual index access methods, which PostgreSQL enables us to add as extensions. In the next article we will discuss the interface of the access method and critical concepts such as classes and operator families. After that long but necessary introduction we will consider details of the structure and application of different types of indexes: Hash, B-tree, GiST, SP-GiST, GIN and RUM, BRIN, and Bloom.

      Before we start, I would like to thank Elena Indrupskaya for translating the articles to English.
      Things have changed a bit since the original publication. My comments on the current state of affairs are indicated like this.
      Read more →
    • Generating multi-brand multi-platform icons with Sketch and a Node.js script — Part #1



        TL;DR


        Using a custom build script in Node JS, it is possible to manipulate a series of Sketch files, and then, using an internal Sketch tool, automatically export their assets, to generate multiple icon libraries, for multiple platforms and different brands, that support dynamic colourisation of the assets via design tokens, and also AB testing of the assets via naming convention. Easy peasy :)


        Well, actually it’s not that easy, but it can certainly be done. This post is a detailed explanation of how we did it, and what we discovered along the way.

        The problem we were trying to solve


        At Badoo we build a dating app. Actually, multiple dating apps. For multiple platforms (iOS, Android, Mobile Web, Desktop Web), across multiple teams.

        We use hundreds of icons in our apps. Some of them are the same across different apps, some are very specific to the brands the apps reflect. The icons are continuously evolving, in sync with the evolution of the design. Sometimes completely new icons are added, while others get updated, and still others get dropped (although, they often remain in the codebase).
        Read more →
      • We're in UltraHD Morty! How to watch any movie in 4K

          You’ve probably heard about Yandex’s DeepHD technology they once used to improve the quality of old Soviet cartoons. Unfortunately, it’s not public yet, and we, regular programmers, don’t have the dedication to write our own solution. But I personally really wanted to watch Rick and Morty on my 2880x1880 Retina display. And I was deeply disappointed, as even 1080p video (the highest available for this series) looks really blurry on a Retina display! Don’t get me wrong, 1080p is often good enough, but Retina is designed in such a way that an animation with its pronounced outlines in 1080p looks awfully blurry, like 480p on a FullHD monitor.

          I decided I want to see Rick and Morty in 4K, even though I can’t write neural networks. And, amazingly, I found a solution. You don’t even need to write any code: all you need is around 100GB of free space and a bit of patience. The result is a sharp 4K image that looks better than any interpolation.


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

          More
          Ads
        • You Do Not Need Blockchain: Eight Well-Known Use Cases And Why They Do Not Work

            image


            People are resorting to blockchain for all kinds of reasons these days. Ever since I started doing smart contract security audits in mid-2017, I’ve seen it all. A special category of cases is ‘blockchain use’ that seems logical and beneficial, but actually contains a problem that then spreads from one startup to another. I am going to give some examples of such problems and ineffective solutions so that you (developer/customer/investor) know what to do when somebody offers you to use blockchain this way.


            Disclaimers


            • The described use cases and problems occur at the initial stage. I am not saying these problems are impossible to solve. However, it is important to understand which solutions system creators offer for particular problems.
            • Even though the term ‘blockchain use’ looks strange and I am not sure that blockchain can be used for anything other than money (Bitcoin), I am going to use it without quotes.

            1. Supply chain management


            Let’s say you ordered some goods, and a carrier guarantees to maintain certain transportation conditions, such as keeping your goods cold. A proposed solution is to install a sensor in a truck that will monitor fridge temperature and regularly transmit the data to the blockchain. This way, you can make sure that the promised conditions are met along the entire route.

            Read more →
          • 10 Things About Technical SEO Every WordPress Site Owner Needs to Know

              Any blogger who was brave enough to create his WordPress blog sooner or later faces a question of how to get more visitors. One of the most reasonable ways to attract them is to promote a website in organic search results. This process usually starts from technical optimization that scares most beginners. To overcome your fear of SEO, we've prepared a list of 10 key technical SEO aspects you need to handle.
              Read more →
            • Top 10 Mobile App Development Companies for Enterprise & Startups

                image


                The mobile app developers are exceptionally intrigued by conveying 100% fulfillment outcome for the entrepreneurs. By having top 10 mobile app development companies, it is crucial for working with an effective outcome and does the worldwide system. In this way, get assistance from the professional mobile app developers and grow the business in like manner.

                Read more →
              • Implementation of the digital mobile-only bank in Kazakhstan

                In today’s world, Kazakhstan carries out significant improvement work for the economic situation of the country. As part of a commission from Head of State, National Bank of Kazakhstan has revoked licenses of three commercial bank pursued high-risk policy (NBK, 2017). Furthermore, over the past 10 years, 7 second-tier banks have gone into liquidation as well as the liabilities of the commercial banks as a whole have increased by 70 per cent or 5.5 trillion Tenge (Hereinafter — KZT). NBK plans to continue treatment the real economy sector, withdrawal of financial institution, restructuring its assets to well-balanced entities.

                On the other side of the world, the digital and mobile banks namely, Starling bank, Monzo, N26 are becoming increasingly popular among society in the United Kingdom. As a vivid illustration, Starling Bank has increased considerably the number of customers for 8 times (up to 400 000 people) at the end of the 2018 year (Starling Bank, 2019). At the same time, one million clients have joined and used Monzo’s services (Monzo). Such tendency establishes substantial competition for all players including high-street banks in the payments market.

                In consequences, the main object of the paper is identification the advantages of digital bank and illumination capabilities to deploy analogous mobile bank in Kazakhstani real financial sector.
                Read more →
              • .NET Reference Types vs Value Types. Part 2


                  The Object base type and implementation of interfaces. Boxing


                  It seems we came through hell and high water and can nail any interview, even the one for .NET CLR team. However, let's not rush to microsoft.com and search for vacancies. Now, we need to understand how value types inherit an object if they contain neither a reference to SyncBlockIndex, not a pointer to a virtual methods table. This will completely explain our system of types and all pieces of a puzzle will find their places. However, we will need more than one sentence.


                  Now, let's remember again how value types are allocated in memory. They get the place in memory right where they are. Reference types get allocation on the heap of small and large objects. They always give a reference to the place on the heap where the object is. Each value type has such methods as ToString, Equals and GetHashCode. They are virtual and overridable, but don’t allow to inherit a value type by overriding methods. If value types used overridable methods, they would need a virtual methods table to route calls. This would lead to the problems of passing structures to unmanaged world: extra fields would go there. As a result, there are descriptions of value type methods somewhere, but you cannot access them directly via a virtual methods table.


                  This may bring the idea that the lack of inheritance is artificial


                  This chapter was translated from Russian jointly by author and by professional translators. You can help us with translation from Russian or English into any other language, primarily into Chinese or German.

                  Also, if you want thank us, the best way you can do that is to give us a star on github or to fork repository github/sidristij/dotnetbook.
                  Read more →
                • Cryptocurrency market valuation to hit $1 trillion this year -Cryptocurrency Predictions 2019

                    Cryptocurrency market valuation to hit $1 trillion this year. The market cap of cryptocurrency seems to just increase. Even though some of the individual ones are falling but cumulatively, the market cap seems to increase year-on-year.

                    According to the CEO of Kraken, Jesse Powell, cryptocurrencies would see accelerated growth. They would be able to pull back from the bottom to new highs.

                    According to him, there are many businesses revolving around cryptocurrencies now. Also, there are many people in the know-how of cryptocurrency is no
                    Read more →
                  • Learning to Computer: How to Gain a New Skill

                      Most people assume that I studied computer science in university and that I’ve been coding since I was young. They’re usually surprised when I tell them that in fact I studied Marketing and Spanish and that although my brother taught me how to build a very basic web page in the early 2000s, I didn’t really start to learn to program until I was an adult with a job.


                      The truth of the matter is that my story isn’t unique. It’s simply not true that you have to be a whiz kid who’s been coding since they were 6 years old in order if you want to be able to program as an adult. There are tons of examples of people who also don’t have a technical background who either became full time programmers or just learned a new skill they enjoy using.


                      In this post, I’ll give you some advice that has served me well on my journey. My path is by no means the only path and depending on the situation you’re in might not be practical or right for you, but it is certainly a path, and I hope it helps you on your path to learning to computer.

                      Read more →
                    • Weak UI, weak programmer

                        UI facepalm


                        Why do so many programmers hate UI work? Because it is tedious. Especially, for the Web, but other types of UI are only slightly easier. Layouts, margins, paddings — neverending stream of little tweaks to make it look OK on all sane environments, and somehow this freaking button sometimes overlaps that input field. Rrrr! And yes, it should not hang on button clicks, which means a lot of asynchronous programming, which is a nightmare.


                        And don’t even speak about aesthetics and usability! Choose right colours, element sizes and locations, find/draw images and put them where they fit, think about user workflows — isn’t it a designers’ or Ux specialists’ job?! Leave me alone, I’m a programmer. I work with backend layers, where everything is straightforward and linear, there are no buttloads of different environments to adjust to, and design is guided by mere logic without pesky fussing with ‘user friendliness’ and ’beauty’!

                        Read more →
                      • Factors of the Bitcoin’s value

                        Introduction


                        In the modern world, new technologies become important factors of the development of financial sphere of world economy. Emergency of such cryptocurrency as Bitcoin is connected with both great opportunities and certain risks for the users of this cryptocurrency. The aim of the present work is to determine the main factors which affect the price of Bitcoin.
                        Read more →