DEEP LEARNING

Image for post
Image for post
Source: Google AI Blog

Objectron is a new SOTA dataset, recently presented by Google AI, which intended to improve 3D object recognition in videos. The dataset contains 15 thousand short video clips, each containing annotation of 3D boundaries of objects. The dataset contains both real clips and synthetic ones, that is, generated based on real ones.

What is the problem

The dataset is designed to facilitate the process of training models for 3D objects on 2D image and video data.

While 2D prediction only provides 2D bounding boxes, by extending prediction to 3D, one can capture an object’s size, position, and orientation in the world, leading to a variety of applications in robotics, self-driving vehicles, image retrieval, and augmented reality. …


PRODUCTIVITY

Productivity is about doing less, rather than doing more.

Image for post
Image for post
Photo by Andreas Klassen on Unsplash

Do you do all the things time-management gurus tell you to but still end up less productive than you thought you would? There are several secrets that not everyone will tell you about. I will touch on 4 of the ones that stood out to me.

After an immense amount of research on the world’s most productive people, it becomes evident that they define productivity differently. It’s not about doing more, not about stuffing your schedule to the brim, not about getting more things done. …


PROGRAMMING

An overview of the most popular Python tools and how to use them correctly in our projects

16 Python Tools That Every Developer Should Know
16 Python Tools That Every Developer Should Know
Background photo by Vadim Sherbakov on Unsplash

When you are just starting to learn Python, someone may explain to you that you can add your source folder to the PYTHONPATH environment variable, and then your code can be imported from other directories. Very often, the explainer forgets to say that, in most cases, this is a bad idea.

Some people find this on the Internet; others know it from their own experience. But too many people (especially inexperienced programmers) think that there are no other alternatives.

Even if you know there is an alternative; it is not always easy to get used to and start using it. Python tools are confusing because there is a lot of software built on top of one another, with a ton of overlap and problems that come with it. …


PROGRAMMING

Clear explanation for Python dictionary methods and how to use them

Image for post
Image for post

❓ What is a dictionary ❓

Dictionary is an unordered data structure that allows you to store key-value pairs. Here’s an example of a simple Python dictionary:

Python Dictionaries and Methods
Python Dictionaries and Methods

This dictionary uses strings as keys, but the key can be, in principle, any immutable data type. The value of a particular key can be anything. Here’s another example of a dictionary where keys are numbers and values are strings:

Python Dictionaries and Methods
Python Dictionaries and Methods

An important clarification: if you try to use a mutable data type as a key (e.x. list), you will get an error:

Python Dictionaries and Methods
Python Dictionaries and Methods

In fact, the problem is not with mutable data types, but with non-hashable data types, but usually, they are the same thing. …


WEB DEVELOPMENT

Responsive web design allows you to significantly save money and not to draw a new design for each resolution.

Image for post
Image for post
Source: tenor

Responsive layout changes the page’s design depending on the user’s behavior, platform, screen size, and device orientation and is an integral part of modern web development. It allows you to significantly save money and not draw a new design for each resolution, but to change individual elements’ size and location.

This article will go over the basic elements of a website and how to adapt them.

Screen Resolution Adjustment

In principle, you can divide devices into different categories and typeset for each of them separately, but it will take too long, and who knows what standards will be in five years? …


PROGRAMMING

Beauty and power of type annotations in Python or why I always use it

Image for post
Image for post
Photo by author

Python is a dynamically typed language and allows us to operate fairly freely on variables of different types. However, when writing code, we somehow assume which types of variables will be used (this may be caused by a limitation of the algorithm or business logic). And for the program to work correctly, it is important for us to find errors associated with transferring data of the wrong type as early as possible.

Keeping the idea of ​​dynamic duck typing in modern versions of Python (3.6+) supports annotations of variable types, class fields, arguments, and return values ​​of functions:


CAREER

A list of essential questions that YOU need to ask your future employer.

13 Questions You Need to Ask During a Job Interview
13 Questions You Need to Ask During a Job Interview
Photo by Brett Jordan on Unsplash

An interview is a dialogue, and questions to the employer are part of it. Moreover, the employer himself expects questions from you, because according to them, he also determines how competent the applicant is and whether he is serious about it.

Do not take the interview as an exam with dry grades on the result: you can prepare brilliantly, “pass” the technical part, but “fail” the questions to the employer at the interview, as well as getting the job itself.

However, I would like to highlight 13 questions that became essential from my experience as an employee and an employer.

❓ Question #1

What is the reason for opening a vacancy, and how long has the search been going on?


DEEP LEARNING

Recently researchers from Baidu have proposed a new neural network model for an image character recognition (OCR) problem.

Image for post
Image for post
Source: Arxiv

The Optical Character Recognition (OCR) systems have been widely used in a variety of application scenarios, such as office automation (OA) systems, factory automation, online educations, map productions, etc. However, OCR is still a challenging task due to the variety of text appearances and the demand for computational efficiency.

In the recently published paper, the Baidu team proposes a practical ultra-lightweight OCR system, called PP-OCR. The overall model size of the PP-OCR is only 3.5M parameters for recognizing 6622 Chinese characters and 2.8M parameters for recognizing 63 alphanumeric symbols, respectively. We introduce a bag of strategies to either enhance the model ability or reduce the model size. The corresponding ablation experiments with real data are also provided. Meanwhile, several pre-trained models for the Chinese and English recognition are released, including a text detector (97K images are used), a direction classifier (600K images are used) as well as a text recognizer (17.9M images are used). Besides, the proposed PP-OCR is also verified in several other language recognition tasks, including French, Korean, Japanese, and German. …


PROGRAMMING

An honest review of why Golang may be bad for experienced developers

Image for post
Image for post
Source: dev.to

In recent months I use Go for the implementation of Proof of Concept in my leisure time, partly to study of Go programming language itself. Such “Hello World!” programs themselves are elementary and not the purpose of this article, but the experience of using Go itself deserves a few words about it.

Go promises to be the mainstream language for scalable severe code. The language was created by Google, in which it is actively used. To sum up, I honestly think that the design of Go is bad for smart programmers.

Golang — Designed for weak programmers?

Go is very easy to learn, so simple that it took me one evening to introduce it, and then I could write code productively. The book on which I have studied is called Go is An Introduction to Programming in Go. The book, like the Go source code itself, is easy to read, has good code examples, and contains about 150 pages that you can read at a time. This simplicity is refreshing at first, especially in a programming world full of overcomplicated technologies. But in the end, sooner or later, the thought arises: “Is this really so?”


What should a middle developer know? This question is relevant both for those who are applying for a middle vacancy and for those who are looking towards promotion.

Image for post
Image for post
Photo by olia danilevich: Pexels

It is worth noting that, despite the fact that IT has developed a scale for evaluating programmers (Trainee, Junior, Middle, Senior, Lead), with which more or less everyone agrees, there is not yet a precise definition of each level of general opinion among companies. Therefore, each company sets internal requirements for skills at each level.

Nevertheless, there is a basic set of knowledge and skills that can be used as a whole to guide in evaluating yourself. Many experts argue that today the requirements for Middles are somewhat overestimated.

The position of a Middle-developer presupposes not only a confident knowledge of the programming language but also the broadest knowledge in related technologies. The Middle position imposes on a specialist the responsibility not only to program “anything”, but also to teach, optimize the code, disassemble, and maintain someone else’s code as if it were native. In fact, nowadays there are requirements for Middle-developer vacancies, as a few years ago for Senior. …

About

Mikhail Raevskiy

Bioinformatician at Oncobox Inc. (@oncobox). Research Associate at Moscow Institute of Physics and Technology (@mipt_eng).

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store