Pull to refresh

PopSci

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.

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 →

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 →

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 →

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 →

PC Speaker To Eleven

Reading time12 min
Views36K
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 retro computing 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.

Videogame monsters: how to sow fear

Reading time4 min
Views3.3K

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

Reading time8 min
Views14K
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

Reading time12 min
Views4.2K
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

Reading time6 min
Views2.1K

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

Reading time6 min
Views2.4K

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

“I can tell you about the pain every iOS developer has in the ass” — 10 questions to a developer, episode 2

Reading time7 min
Views3.6K


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.

Time management in real life

Reading time3 min
Views4.9K

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

Reading time21 min
Views163K
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 →

How to learn English

Reading time4 min
Views14K

One one hand I don't want to be the final authority, but on the other hand, I'd like to share my point of view on how to learn English. The English language is not secret knowledge; it is just a lot of hard training. One of the most important bullets is constantly improving English. You should do it from day to day if you want to approach result. It must not loathe torture for you, It means that you should find out something interesting in that process.

Read more →

The authoritative guide to Blockchain Sharding

Reading time12 min
Views1.7K

Hi, I'm one of the developers of the sharded blockchain Near Protocol, and in this article want to talk about what blockchain sharding is, how it is implemented, and what problems exist in blockchain sharding designs.


It is well-known that Ethereum, the most used general purpose blockchain at the time of this writing, can only process less than 20 transactions per second on the main chain. This limitation, coupled with the popularity of the network, leads to high gas prices (the cost of executing a transaction on the network) and long confirmation times; despite the fact that at the time of this writing a new block is produced approximately every 10–20 seconds the average time it actually takes for a transaction to be added to the blockchain is 1.2 minutes, according to ETH Gas Station. Low throughput, high prices, and high latency all make Ethereum not suitable to run services that need to scale with adoption.

Read more →