Pull to refresh

All streams

Show first
Rating limit
Level of difficulty

My Pascal compiler and Polish contemporary art

Reading time5 min
Views7.2K

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.

C++ Binary Compatibility and Pain-Free Upgrades to Visual Studio 2019

Reading time4 min
Views3.7K

Visual Studio 2019 pushes the boundaries of individual and team productivity. We hope that you will find these new capabilities compelling and start your upgrade to Visual Studio 2019 soon.


As you are considering this upgrade, rest assured that Visual Studio 2019 makes it distinctively easy to move your codebase from previous versions of Visual Studio. This post captures the reasons why your upgrade to Visual Studio 2019 will be pain-free.


Read more →

Valentine's Day Application on Libgdx

Reading time7 min
Views3.8K

Every year there are a lot of articles dedicated to Valentine's Day. I also decided to get involved in this topic and create something original and unusual. The idea was to create a simple Android application with hearts that would have their physical models and interact with each other. Then I added text, sounds, particles and some other effects. The resulting app was working and quite original! In this article I will describe the creation process, as well as the capabilities and pitfalls of the libgdx library.


Valentines Day Hearts.

Read more →

6 Applications for the Industrial IoT

Reading time6 min
Views2.3K
“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

Reading time9 min
Views1.5K
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

Reading time3 min
Views1.8K

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 →

VIM for beginners

Reading time6 min
Views28K


Like any developer, you are constantly developing. You are learning new technologies by reading books, watching online lessons, attending some courses, and so on and so forth. You know that if you stop learning, you become uncompetitive. But have you ever thought about your performance? How do you improve that? If you don't know how to answer than welcome under the cut.

Read more →

Internet Issues & Availability Report 2018–2019

Reading time16 min
Views1.6K
image

While working on the annual report this year we have decided to avoid retelling the news headlines of the previous year and, though it is almost impossible to ignore memories absolutely, we want to share with you the result of a clear thought and a strategic view to the point where we all are going to arrive in the nearest time — the present.

Leaving introduction words behind, here are our key findings:

  • Average DDoS attack duration dropped to 2.5 hours;
  • During 2018, the capability appeared for attacks at hundreds of gigabits-per-second within a country or region, bringing us to the verge of “quantum theory of bandwidth relativity”;
  • The frequency of DDoS attacks continues to grow;
  • The continuing growth of HTTPS-enabled (SSL) attacks;
  • PC is dead: most of the legitimate traffic today comes from smartphones, which is a challenge for DDoS actors today and would be the next challenge for DDoS mitigation companies;
  • BGP finally became an attack vector, 2 years later than we expected;
  • DNS manipulation has become the most damaging attack vector;
  • Other new amplification vectors are possible, like memcached & CoAP;
  • There are no more “safe industries” that are invulnerable to cyberattacks of any kind.

In this article we have tried to cherry-pick all the most interesting parts of our report, though if you would like read the full version in English, the PDF is available.
Read more →

Touch typing

Reading time3 min
Views8.4K


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 →

Submit to the Applied F# Challenge

Reading time2 min
Views891

This post was written by Lena Hall, a Senior Cloud Developer Advocate at Microsoft.


F# Software Foundation has recently announced their new initiative — Applied F# Challenge! We encourage you to participate and send your submissions about F# on Azure through the participation form.


Applied F# Challenge is a new initiative to encourage in-depth educational submissions to reveal more of the interesting, unique, and advanced applications of F#.

Read more →

How does a barcode work?

Reading time6 min
Views13K
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 →

Zen of Unit Testing

Reading time4 min
Views2.9K


Ability to write good unit tests is an important feature of any developer. But how to understand that your unit tests are correct? Good unit test is like a good chess game. In our case chessmen are the approaches which we are going to discuss in this post. There is no best chessman in a chess game because everything depends on the positions (and a player). Likewise, in unit testing you don't have to distinguish only one approach. In other words, you should use all approaches together to get the best result. So, if you want to win this game, then welcome under the cut.

Read more →

Announcing TypeScript 3.3

Reading time5 min
Views1.1K

If you’re unfamiliar with TypeScript, it’s a language that brings static type-checking to JavaScript so that you can catch issues before you even run your code – or before you even save your file. It also includes the latest JavaScript features from the ECMAScript standard on older browsers and runtimes by compiling those features into a form that they understand. But beyond type-checking and compiling your code, TypeScript also provides tooling in your favorite editor so that you can jump to the definition of any variable, find who’s using a given function, and automate refactorings and fixes to common problems.

Read more →

On higher education, programmers and blue-collar job

Reading time13 min
Views9.1K


“Sometimes it happens that a man’s circle of horizon becomes smaller and smaller, and as the radius approaches zero it concentrates on one point. And then that becomes his point of view.”

David Hilbert
“When I thought I had hit rock bottom, someone knocked from below.”

Stanisław Jerzy Lec

Preface


Does a programmer need a higher education? The flow of opinions on this undoubtedly urgent topic has not dried up, so I have decided to express my view. It seems to me the general disappointment in education is due to the numerous processes and changes in the profession and it needs serious study. Below I will discuss the most common misconceptions, myths, and underlying causes of the phenomenon.
Read more →

Researchers from MIT designed «rectenna» which converts Wi-Fi signals into electricity

Reading time2 min
Views3K

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

Reading time6 min
Views1.3K
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 →

Making Git for Windows work in ReactOS

Reading time10 min
Views5K

Good day to you! image


My name is Stanislav and I like to write code. This is my first english article on Habr which I made due to several reasons:



This article is an english version of my very first article on russian.


Let me introduce the main figures in this story who actually fixed the bug preventing Git from running in ReactOS — the French developer Hermès Bélusca-Maïto (or just Hermes with hbelusca nickname) and of course me (with x86corez nickname).


The story begins with the following messages from the ReactOS Development IRC channel:


Jun 03 18:52:56 <hbelusca> Anybody want to work on some small problem? If so, can someone figure out why this problem https://jira.reactos.org/browse/CORE-12931 happens on ReactOS? :D
Jun 03 18:53:13 <hbelusca> That would help having a good ROS self-hosting system with git support.
Jun 03 18:53:34 <hbelusca> (the git assertion part only).
Read more →