• My Pascal compiler and Polish contemporary art

      Origins


      Several years ago I wrote a Pascal compiler. The motivation was simple: as a teenager, I had learnt from my first programming textbooks that a compiler is a very sophisticated thing. This claim eventually became a challenge and required to be tested by experience.

      image
      ha.art.pl

      First, a simplistic PL/0 compiler came into being, and later an almost fully-functional Pascal compiler for MS-DOS has grown from it. My source of inspiration was the Compiler Construction book by Niklaus Wirth, the inventor of the Pascal language. I don't care if Wirth's views are now considered obsolete and have no direct connections to the IT mainstream, or if the compiler design fashion has changed. It is enough to know that his techniques are still simple, elegant, and — last but not least — bring much fun, since it is more appealing to parse a program source with a handwritten recursive descent parser and generate the machine code, rather than to call yaccs, bisons and all their descendants.

      My compiler's fate was not so trivial. It has lived two lives: the first one in my own hands, and the second in the hands of computer antiquarians from Poland.
      Read more →
    • 6 Applications for the Industrial IoT

        “Come on, baby, what’s wrong? Tell me what you need,” my uncle Nicholas was shredding up his old car’s engine, which totally refused to start. Being a schoolboy back then, I was absolutely sure that any exhortation my uncle voiced was powerless against a dumb ton of metal. Talking to a car was just a psychological trick that probably helped my uncle cope with exasperation. Moreover, neither me nor my uncle believed in a possibility to communicate with “dead metal” sometime in the near future. That was in the mid-1980s. When I reached the age of my uncle, the situation changed radically.
        Read more →
      • Building a Private Currency Service Using Exonum

          Zero-knowledge proofs/arguments are an emerging cryptographic technology that promises to bring us closer to the Holy Grail of blockchain: providing data privacy and auditability.

          Potential applications for zero-knowledge include, but are not limited to:


          Another application for zero-knowledge proofs is helping blockchains scale. ZKPs allow for the “compressing” of computations for blockchain transactions without sacrificing security.

          In this article, we describe how zero-knowledge (specifically, Bulletproofs) can be applied to build a privacy-focused service using Bitfury’s Exonum platform.

          Read more →
        • Microsoft Q# Coding Contest – Winter 2019

            Microsoft’s Quantum team is excited to announce the Q# Coding Contest – Winter 2019! In this contest you can put your quantum programming skills to the test, solving quantum computing tasks in Q#. Winners will receive a Microsoft Quantum T-shirt!


            Quantum computing is a radically different computing paradigm compared to classical computing. Indeed, it is so different that some tasks that are believed to be classically intractable (such as factoring integers or simulating physical systems) can be performed efficiently on a quantum computer. In 2017 Microsoft introduced the Quantum Development Kit which includes the Q# programming language. Q# can be used with Visual Studio, Visual Studio Code or the command line, on Windows, macOS, and Linux.


            Read more →
          • How do technical indicators on stock market actually work?

              Anyone, who has ever been interested in stocks or cryptocurrencies has seen these additional lines on charts. You may have heard the opinions that they don’t work. But they greatly improve my trading ability, while displaying alot of important data. But how are they actually works? And to whom it can be useful?

              You should definitely read this if:

              1. You use them in day trading
              2. You are planning to write a trading bot
              3. If you want to implement a trading strategy or indicators by yourself


              Read more →
            • Touch typing

              • Tutorial


              20% of efforts produce 80% of the results. And the other 80% of efforts produce only 20% of results.

              In other words, you have to spend only 20% of the total time to learn something new and the last 80% you spend to become an expert. To learn touch typing you spend only one week of your life to achieve the same speed which was before. It becomes easier to type and you are getting faster and faster every next day. In this post, I will tell you how to start and give you the basic tips and tricks to make your learning process easier. Challenge yourself to become more productive.

              Read more →
            • How does a barcode work?

                Hi all!

                Every person is using barcodes nowadays, mostly without noticing this. When we are buying the groceries in the store, their identifiers are getting from barcodes. Its also the same with goods in the warehouses, postal parcels and so on. But not so many people actually know, how it works.

                What is 'inside' the barcode, and what is encoded on this image?



                Lets figure it out, and also lets write our own bar decoder.
                Read more →
              • Ethicality of automatic contributions

                • Translation
                Hey Habr! Today I would like to talk about ethics, namely ethics in the professional field. It will be a question of services that perform 'fake' (automated human-like) activity and of those doubts in which they can result both the ordinary ordinary user, and the professional of development sphere.



                So, let's start. What I mean by the phrase «fake activity» is not difficult to guess: it is the manipulation and compromising of the data that are responsible for the indicator of your activity, or more simply, of actions on the Internet. With this, of course, every one of you who used social networks at least once came across: Facebook, Instagram, and so on.

                I will describe this scheme on the example of Instagram: each person has his own account, and for developers API access is provided. And what did we do? We started to launch bots that can perform all sorts of activity through a person’s account (such as like, subscribe, comment on other people's posts, or even independently manage their (or owners) page, for example @neuralcat ). And soon this opportunity began to be actively used in the business sphere. Attracting a new audience by targeting according to certain criteria and carrying out activity on their page. Everything would be fine, but over time it went beyond all limits. Every day dozens of incomprehensible accounts like your photos, leave spam comments, tag you on advertising posts and so on.

                Bot activity has gone beyond all limits of prudence that today Instagram closes its API, and here is one of the reasons: “Most of the services that work with auto-posting, likes and OML-like likes — do it through private api — login / password, but not through the official API.”
                Read more →
              • Researchers from MIT designed «rectenna» which converts Wi-Fi signals into electricity


                  Source: eeNews Europe

                  I'm glad that Habr got brand new English version. And my first post in English is about new MIT project. Researchers designed an ultra-low capacitance and ultra-low resistance Schottky diode capable of switching at GHz frequencies. This diode is able rectify and convert random WiFi signals into DC electricity.

                  MoS2 «rectenna» (this is how scientists called their invention) could become the main element of roll-to-roll process to cover a huge areas. To be fair antennas capable transform radio signals in to electricity is not a new thing. The main achievement of MIT engineers is creation of soft rectenna made from special alloy.
                  Read more →
                • Scaling a Tech Newsletter to 700k Subscribers in 300 Cities: the History of Techstars Startup Digest

                    Entrepreneurs are constantly looking for new tools and possibilities to develop their businesses and enrich their knowledge. One of the ways of doing this is visiting themed events — meeting colleagues in real life, exchanging experiences, and communicating with potential investors.

                    In fact, there are thousands of tech-focused events taking place annually. The important thing is to pick the best, most useful and easily accessible ones to optimize your time and expenses.

                    Techstars Startup Digest solves this problem by sending its subscribers an email newsletter with a curated list of relevant and reasonably priced events for entrepreneurs. Currently, Startup Digest consists of more than 700 curators, is approaching 700K subscriptions, and is available in more than 300 cities all around the world. Today, I’d like to share its history, how the founders came up with the idea, what it looked like in the initial stages, and what it’s going through right now.

                    Read more →
                  • PC Speaker To Eleven

                      Known now as a «motherboard speaker», or just «beeper», PC Speaker has been introduced in 1981 along with the first personal IBM computer. Being a successor of the big serious computers for serious business, it has been designed to produce very basic system beeps, so it never really had a chance to shine bright as a music device in numerous entertainment programs of the emerging home market. Overshadowed by much more advanced sound chips of popular home game systems, quickly replaced with powerful sound cards, it mostly served as a fallback option, playing severely downgraded content of better sound hardware.

                      «System Beeps» is a music album in shape of an MS-DOS program that features original music composed for PC Speaker using the same basic old techniques like ones found in classic PC games. It follows the usual retrocomputing demoscene formula — take something rusty and obsolete, and push it to eleven — and attempts to reveal the long hidden potential of this humble little sound device. You can hear it in action and form an opinion on how successful this attempt was at Bandcamp, or in the video below. The following article is an in-depth overview of the original PC Speaker capabilities and making of the project, for those who would like to know more.

                      Read more →
                    • Videogame monsters: how to sow fear

                      • Tutorial

                      In video games, enemies are one of the key figures, without which a game might lose its meaning, and when it’s not only enemies, but terrifying monsters, they often create the chilling atmosphere intended by the developers. It’s impossible to imagine Silent Hill without the Pyramid Head, or Outlast without Chris Walker, and so on, you get the idea. Monsters are a cumulative image of a video game enemy, and it’s not necessarily an ugly demon or a giant spider: even an angry neighbor, like in Hello Neighbor, is a monster despite his human appearance.

                      This is where the reader probably asks:


                      what’s the point of this article?
                      Read more →
                    • Understanding the POCSAG paging protocol

                        Long time ago, when a mobile phone costed about 2000$ and one minute of voice call was 50 cents, pagers were really popular. Later cellular phones became cheaper, calls and SMS prices became lower, and finally pagers mostly disappeared.


                        For people, who owned a pager before, and want to know how it works, this article will be useful.
                        Read more →
                      • Manifest of Smart Home Developer: 15 principles

                          Today I’d like to speak about Smart homes and IoT devices. But it is no ordinary article. You won’t find description of hardware, links to manufacturers, batches of code or repositories. Today we’ll discuss something of a higher level — principles that are used to organize “smart” systems.

                          image



                          Smart home is a system that can do some everyday routines instead of a person. It leads us to the first and the main principle:
                          Read more →
                        • Chemistry lesson: how to expose a microchip's crystal for photography

                          Introduction


                          If you have dabbled into microchip photographing before, then this article will probably not offer much to you. But if you want to get into it, but don’t know where to start, then it’s exactly for you.


                          Before we start, a fair warning: while the procedure is quite entertaining, at first it’ll probably be physically painful. The chemicals used during the process are toxic, so please handle them carefully – that way it’ll still hurt, but less so. Also, if you have even a slight amount of common sense, conduct the procedure in a fully-equipped chemical laboratory under supervision of trained professionals: we’ve had to deal with people who tried to do it at home immediately after reading the guide. And finally: if you don’t know whether you need to pour acid into water or water into acid without a Google search and don’t realize what this lack of knowledge will entail – stop reading this immediately and go to a chemistry 101 course in a local college or something.


                          Read more →
                        • Teaching kids to program

                          • Translation

                          Hi. My name is Michael Kapelko. I've been developing software professionally for more than 10 years. Recent years were dedicated to iOS. I develop games and game development tools in my spare time.


                          Overview


                          Today I want to share my experience of teaching kids to program. I'm going to discuss the following topics:


                          • organization of the learning process
                          • learning plan
                          • memory game
                          • development tools
                          • lessons
                          • results and plans
                          Read more →
                        • “I can tell you about the pain every iOS developer has in the ass” — 10 questions to a developer, episode 2

                          • Translation


                          Seems like everyone enjoyed the pilot episode, and we’re still sure that people “behind the scenes” can be as exciting as IT celebrities we all know and love. And maybe even more, because they talk about real problems and real solutions. This week we asked 10 questions to a person behind the development of Yandex.Maps for iOS.
                          Read more →
                        • Time management in real life

                          • Tutorial

                          no problems


                          Have you ever noticed that you were busy all day, however, you've done nothing or at X-mas evening you experience an epiphany that nothing was done during the year? If your answer is "yes", you should improve your time management skills. According to Wikipedia, time management is the process of planning and exercising conscious control of time spent on specific activities, especially to increase effectiveness, efficiency and productivity. Nevertheless, how can we deal with it?

                          Read more →
                        • A small notebook for a system administrator

                            I am a system administrator, and I need a small, lightweight notebook for every day carrying. Of course, not just to carry it, but for use it to work.

                            I already have a ThinkPad x200, but it’s heavier than I would like. And among the lightweight notebooks, I did not find anything suitable. All of them imitate the MacBook Air: thin, shiny, glamorous, and they all critically lack ports. Such notebook is suitable for posting photos on Instagram, but not for work. At least not for mine.

                            After not finding anything suitable, I thought about how a notebook would turn out if it were developed not with design, but the needs of real users in mind. System administrators, for example. Or people serving telecommunications equipment in hard-to-reach places — on roofs, masts, in the woods, literally in the middle of nowhere.

                            The results of my thoughts are presented in this article.

                            Figure to attract attention
                            Read more →