• How to Painlessly Unite Art with Java, JavaScript, and Graphs or The Story Behind Creating an Interactive Theatre Produc

      Last year 2018, a theatre production series called Tale of the Century was launched in Estonia. Throughout the year, 22 local theatres presented their interpretations of the past hundred years of Estonian history to the audiences. In the draw, the Russian Theatre was assigned the topic of the future of Estonia.

      Читать дальше →
    • Things you need to know should you want to switch from PHP to Python

      • Translation
      Did you ever think that one day you had got into PHP web programming too quickly?
      Several years have passed already, you have gained a lot of experience and can’t think of any other ways to work with web but PHP. Perhaps, you sometimes doubt the choice you have made, but are unable to confirm your doubts here and now. At the same time, you need real examples; you want to understand the changes that may occur in particular aspects of your work.

      Today I will try to answer the following question: "What if we use Python instead of PHP?".

      I have asked this question myself many times. I have been using PHP for 11 years already and am a certified PHP specialist. I have mastered it so it works just the way I want. I was really puzzled by several articles that criticized PHP severely (PHP: a fractal of bad design). However, when chance came, I switched to Ruby and then to Python. Eventually, I chose the latter. Now I will try to explain how we Python guys live out there.


      Read more
      • +20
      • 4.1k
      • 7
    • How to setup front-end project with automated formatting, linting, testing and auto-generated documentation

      • Tutorial


      Original post in Russian


      Keeping your code consistent and well formatted not an easy task even when you work alone. But when you work with a team or with open source project all start getting even harder. Everyone has own code style, someone doesn’t run tests, and no one writes documentation. This article will help you to set up all these things and even more — automate this routine to never do it manually.


      After reading you will get your own npm-ready project with next features:

      Read more →
    • What to think during NALSD interview

        There are a lot of posts about what a typical coding interview at Google looks like. But, while not as widely described and discussed, there is also quite often a system design interview. For an SRE position it’s NALSD: non-abstract large system design. The key difference between SWE and SRE interviews consists in these two letters: NA.

        So, what is the difference? How to be prepared for this interview? Let’s be non-abstract, and use an example. To be more non-abstract, let’s take something from the material world, such that you won’t be asked the exact same thing at the real interview (at least, not at the Google interview) :)

        So, let’s design a public library system. For the paper books, like you have seen everywhere around. The whole text below was written all at once within around one hour, to roughly show you the areas that you should be able to cover / touch during the interview. Please excuse some disorder, that’s how I think (therefore I am).
        Read more →
      • Creator of while True: learn() on programming in game development, VR issues and machine learning simulation

        • Translation


        A few years ago I had a feeling that Oleg Chumakov (then working at the game studio Nival) was the most famous programmer in the game development industry. He was giving speeches, hosted Gamesjams and frequently showed up on the podcast How games are made.

        When VR hit the market, Oleg was chosen to lead the company’s new department — NivalVR. But, as you probably know, VR didn’t quite take off as much as people expected.

        I kind of moved to other to other things in life and stopped keeping up with game development for a while, but after getting into it again I noticed that things were looking up for Oleg’s team. Now it’s called Luden.io, and their machine learning expert simulator, while True: learn() became a huge hit in its admittedly small niche. Lots of cool stories are happening around the game and the team.

        We decided to do an interview with Oleg, but I couldn’t stick to one topic — his life up to this moment has been, for the lack of a better word, “interesting”. He’s seen it all. And, to ensure that a programmer could talk about programming without fear of looking too “nerdy”, the interview was conducted by my friend, colleague and an experienced developer of its own fillpackart.
        Читать дальше →
      • Another event for CSS position: sticky

          Have you ever wondered how to track when elements with positions: sticky become fixed? Eric Bidelman has an amazing post on this topic, go and read it now.


          I've found some difficulties while using it in my project. Here they are:


          1. It breaks encapsulation. sticky-change event relates to header element, but you have to insert sentinels to header's parent (and make it position: relative).
          2. It involves lots of factors that should be consistent and their connection is not always obvious. For example you can't set --default-padding greater than 40px, which is top-sentinel's height.
          3. You can't track block in the middle of an article.

          Let's try to improve it!

          Читать дальше →
        • How to milk cows with robots and make an industrial startup of it. The history of the R-SEPT development

          • Translation


          In 2017, the media heard a very interesting story about a startup that robotizes milking cows on industrial dairy farms. The company is called R-SEPT, and back then it received 10 million rubles of investment. But a year has passed, and there's still no news on what happened further. We contacted Aleksey Khakhunov (AlexeiHahunov), the founder of the startup, and discussed the development. It turns out that the whole year his team was getting the prototype of the robot into shape, and just a week ago they conducted their first field test on the farm.

          Under the cut there's a story about a robotics student who grew up on his parents' farm, turned the University diploma into an industrial startup, as he collected the first manipulators with his friends, and then scaled up to the level of state programs for the robotization of agriculture. And the most important is how the iron hand of the robot and the machine vision are better than a living milkmaid.
          Читать дальше →
        • AdBlock has stolen the banner, but banners are not teeth — they will be back

          More
          Ads
        • Why anyone would bother to learn out-of-demand languages. A case study of the F# community

          • Translation


          We all hear of iconic movies, games, books or musical compositions that get vehemently praised by the community of sophisticados, professionals and critics, yet never seem to attract tangible commercial success or the attention of the wider audience. Such situations leave me deeply frustrated.

          When it comes to development, good tech also sometimes never gets into the limelight. Take F# for example. All I know about it is that it is a super-cool, yet totally unpopular language which makes it hard for developers – upon getting to know it – to get back to the languages they’re used to.

          I tried to find out what is the story behind this. In fact, who are the people who use it and why are they doing this if the language is out of demand in business? To find answers, I joined the Russian-speaking F# community on Telegram – our round table for the discussion.
          Read more →
        • How to crack a self-service terminal and why 80% of them are under threat

          • Translation
          Author of the original post in Russian: frsamara

          I always loved playing with things and testing them under all sorts of wacky conditions as a kid and even considered getting a job as a tester, but I never did. Nevertheless, I still like taking things made by someone else and poking them for vulnerabilities.

          I remember, when first self-service payment terminals started popping around town, I saw one of them put up a browser window while updating, and the game was on — I broke it almost immediately. There’s been a lot of discussion about it since then and developers have started to pay a lot more attention towards security in these machines.

          Recently, fast-food joints have started installing these terminals. Obviously, it’s quite convenient: just tap a couple of virtual buttons, place an order, pay with a bank card and wait for your number to show on the screen.

          Also, nearly every big mall has these interactive boards with floor plans and information on various sales and discounts.

          How secure are they?
          Read more →
        • Modes are vim’s killer feature? Seriously?

          • Translation
          Author of the original post in Russian: varanio

          You may have read a recent article suggesting that vim is great unlike IDEs, because of their allegedly low typing speed.

          Let’s recall that the main message of that article was that vim’s killer feature consists in its modes that sort of outshine everything else. That said, the author acknowledged that IntelliJ IDEA and other IDEs provide hotkeys and other user experience which can be easily used. However, since they lack modes, vim is supposed to be everyone’s first choice.

          The author then suggests that instead of pressing ctrl+arrows to move between words, it is easier to press Esc, e and then go back to the i editing mode. Understandably, all this trouble because the author finds it inconvenient to hold ctrl.

          I know that articles that criticize vim get many negative votes, but I just have to speak out.
          Read more →
        • The hard-to-catch bug in LittleBigPlanet

          • Translation
          image

          Author of the original post in Russian: HotWaterMusic

          The history of the world's gamedev knows quite a few curious bugs that had to be tackled by developers. In fact, judging from the story that Media Molecule's CTO Alex Evans shared on his Twitter page this past weekend, many legends are still waiting to be heard. Evans is famous for his part in a demoscene performance of late 1990s and his work on the LittleBigPlanet game series and on Rag Doll Kung Fu.

          The case I am referring to in this article took place ten years ago, in 2008. While working on the first part of LittleBigPlanet — an original puzzle platform video game that was to be released exclusively for PlayStation 3 — the company's developers came across a really hard-to-catch bug.

          Normally, for a game to get the green light to be released for consoles, it needs to pass a certification process, i.e. meet a set of requirements predefined by the platform owner. The certification may also include more specific requirements, such as the game running smoothly without crashing for 24 hours.

          The development of LittleBigPlanet was at its last stage, with just two weeks to final deployment and distribution. Suddenly a tester from the company's QA in Japan reported that the game was consistently crashing when left overnight. Now the release was evidently out of question unless the bug was fixed.
          Read more →
        • A Practical Implementation of the Switching Generator Using Verilog HDL

          Abstract


          Linear feedback shift registers are an excellent tool for implementing a pseudo random bit generator in hardware; they inhibit a simple and efficient electronic structure. Further, they are capable of producing output sequences with large periods and good statistical properties. However, standard LFSRs are not cryptographically secure, since the output sequence can be uniquely predicted given a small number of key stream bits using Berlekamp-Massey algorithm. Several methods have been proposed to destroy the linearity inherent in LFSR design. These methods include nonlinear combination generators, nonlinear filter generators, and clock controlled generators. Nevertheless, they remain vulnerable to many attacks such as side channel attacks and algebraic attacks. In 2015, a new clocked controlled generator, called the switching generator, was proposed. This new generator has been proven to be resistant to algebraic attacks and side channel attacks, while preserving efficiency and security requirements. In this project, we present a design of the switching generator using Verilog HDL.
          Read more →
        • Real-time edge detection using FPGA

          Introduction


          Our project implements a real-time edge detection system based on capturing image frames from an OV7670 camera and streaming them to a VGA monitor after applying a grayscale filter and Sobel operator. Our design is built on a Cyclone IV FPGA board which enables us to optimize the performance using the powerful features of the low-level hardware and parallel computations which is important to meet the requirements of the real-time system.


          We used ZEOWAA FPGA development board which is based on Cyclone IV (EP4CE6E22C8N). Also, we used Quartus Prime Lite Edition as a development environment and Verilog HDL as a programming language. In addition, we used the built-in VGA interface to drive the VGA monitor, and GPIO (General Pins for Input and Output) to connect the external hardware with our board.


          ZEOWAA FPGA development board

          Read more →
        • Stack-based calculator on the Cyclone IV FPGA board

          Introduction


          As first-year students of Innopolis University, we had an opportunity to make our own project in computer architecture. University suggested us several projects and we have chosen to make a stack-based calculator with reverse polish notation. One of the requirements for the project is to use FPGA board provided by the university.



          As our board, we have chosen Cyclon IV. Therefore, we had to write code on hardware description language. In the course we have studied Verilog, so we have chosen it. Also, the university has additional modules for FPGA, such as numpad, thus we decided to use it in our project.

          In this article, we want to share our knowledge about FPGA and Verilog, also provide you with a tutorial to repeat our project.
          Read more →
        • How linear algebra is applied in machine learning

            When you study an abstract subject like linear algebra, you may wonder: why do you need all these vectors and matrices? How are you going to apply all this inversions, transpositions, eigenvector and eigenvalues for practical purposes?


            Well, if you study linear algebra with the purpose of doing machine learning, this is the answer for you.


            In brief, you can use linear algebra for machine learning on 3 different levels:


            • application of a model to data;
            • training the model;
            • understanding how it works or why it does not work.

            drawing
            Read more →