Pull to refresh
11
Karma
0
Rating
Vasily Kazantsev @hubhito

Developer

Миграция 17 000 файлов JS на TypeScript. Как это было

Reading time 11 min
Views 7.5K
SkillFactory corporate blog Website development *JavaScript *Programming *TypeScript *
Translation

Неточности в коде могут стоить сотен мегабайт оперативной памяти и многих часов, потраченных впустую, только из-за того, что информация о типе переменной приходит в редактор спустя полминуты после наведения курсора.

Если вы хотите перейти на TS, читайте эту статью, чтобы избежать ошибок Etsy и взять на вооружение лучшие решения компании. Подробности миграции рассказываем, пока у нас начинается курс по Fullstack-разработке на Python.

Читать далее
Total votes 7: ↑6 and ↓1 +5
Comments 0

Rust — будущее инфраструктуры JavaScript

Reading time 8 min
Views 17K
JavaScript *Rust *
Translation

Rust - это быстрый, надежный и экономичный, с точки зрения памяти, язык программирования. Его признавали одним из самых любимых языков программирования шесть лет подряд (на основании опросов).

Созданный Mozilla, он теперь используется в FacebookAppleAmazonMicrosoft и Google для системной инфраструктуры, шифрования, виртуализации и низкоуровневого программирования.

Почему Rust сейчас используется для замены таких частей веб-экосистемы JavaScript, как минификация (Terser), транспиляция (Babel), форматирование (Prettier), комплектация (webpack), линтинг (ESLint) и другие?

Читать далее
Total votes 29: ↑21 and ↓8 +13
Comments 29

Игры на советском калькуляторе МК-90

Reading time 3 min
Views 19K
RUVDS.com corporate blog Manufacture and development of electronics *History of IT Old hardware DIY
Tutorial

В этой статье я хочу рассказать о своём опыте работы с микрокалькулятором «Электроника МК-90».

Будет рассмотрено несколько вариантов работы с модулем памяти калькулятора, а также несколько игр на нём.
Читать дальше →
Total votes 99: ↑97 and ↓2 +95
Comments 64

Deepfake: краткая история появления и нюансы работы технологии

Reading time 6 min
Views 15K
Neuro.net corporate blog Working with video *Machine learning *Artificial Intelligence The future is here

О дипфейках мы уже писали. Сейчас технологии генерации такого контента достигла очень высокого уровня. Правда, даже очень хорошо подготовленный дипфейк можно (пока еще) отличить с помощью специализированных технологий. Совсем недавно дипфейки делали для развлечений или чтобы досадить кому-то, сейчас же их начинают применять и в интересах разных компаний - телевизионных, кинематографических и т.п. Актерам уже даже не нужно лично озвучить персонажей фильмов или мультиков - технологии позволяют синтезировать любые слова и фразы, произнесенные якобы самим актером (тональность, высота голоса и т.п. синтезируется очень точно).

Правда, есть и другая сторона медали. Кроме индустрии развлечений, дипфейки используются еще и для составления фальшивых видео с участием известных людей. Это могут быть те же актеры, политики, предприниматели - да кто угодно. Комбинация ИИ-технологий с CGI-технологиями дает поистине потрясающий эффект и обширные возможности, использовать которые можно как во благо, так и в не самых законных целях. Как все это работает?

Читать далее
Total votes 14: ↑13 and ↓1 +12
Comments 2

Приключения микропроцессора в СССР: 16 бит

Reading time 8 min
Views 18K
ISPsystem corporate blog History of IT Old hardware CPU

Привет, Хабр! Настало время продолжить наш цикл о микропроцессорах на территории нашей необъятной страны. В первой части мы рассмотрели некоторые наиболее интересные 8-битные ЦП и компьютеры. Сегодня поговорим о 16-битных не-IBM-совместимых устройствах.

Читать далее
Total votes 53: ↑52 and ↓1 +51
Comments 54

Приключения микропроцессора в СССР: 8 бит

Reading time 13 min
Views 42K
ISPsystem corporate blog History of IT Old hardware CPU

Мы живем в удивительное время: компьютеры окружают нас со всех сторон. Любимый смартфон, ноутбук на работе, медицинские приборы, браслеты и часы. Умные рекламные табло, самокаты и автомобили. 

В основе каждого такого устройства лежит тот или иной микропроцессор. А простой микрокомпьютер размером со спичечный коробок (на базе Atmega или STM32) можно положить в карман или установить в качестве дверного звонка. Мы живем в будущем, не особенно-то его замечая. Но до начала 1980-х ни один советский радиолюбитель даже мечтать не мог о домашнем персональном компьютере.

Сегодня мы попробуем взглянуть на первые микропроцессоры, применявшиеся на территории нашей страны. Первая статья нашего небольшого цикла будет целиком посвящена 8-битным CPU, которые так или иначе выпускались на территории Советского союза и СНГ.

Читать далее
Total votes 87: ↑85 and ↓2 +83
Comments 137

Как работает FaceSwap?

Reading time 9 min
Views 12K
Сбер corporate blog Image processing *Machine learning *Artificial Intelligence


Привет, Хабр!


Сегодня мы, команда Sber AI, расскажем про различные подходы к FaceSwap с помощью нейросетей. Также мы хотим разобраться, какие у разных подходов есть преимущества и недостатки? И главное — как же все это работает?

Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Comments 1

Сколько мне стоило попасть в Гугл и получить повышение, не проработав там ни одного дня

Reading time 12 min
Views 88K
IT career
Sandbox

Декабрь 2020, вторая волна Ковида в разгаре. Я ПМ на удаленке в Американской компании. После похорон отца в Тбилиси я находился в прострации, надо было возвращаться в США и как-то менять своё положение, ведь денег, которых я зарабатывал явно не хватало на нормальную жизнь. Сами воспоминания о моём предыдущем поиске вызывали во мне холодный озноб и какой-то внутренний голос тихо шептал «подожди, сейчас пандемия, многие и о таком мечтают, как-нибудь выкрутишься…».

Каждый день я пытался убить в себе ссыкуна, и убеждал что кризис — это всегда новые возможности, но на следующий день, он все равно приползал обратно и скулил знакомые до тошноты фразы.

Я зарегистрировал себе американский номер в Google Voice, чтобы мне начали звонить рекрутеры и начал рассылать резюме. Я разослал около сотни адаптированных резюме и указал в LinkedIn что активно ищу работу. Постепенно на меня начали выходить рекрутеры небольших компаний, но я понимал, что в них условия будут в лучшем случае на 40% лучше текущей и это все равно не решало моих проблем. Хоть и казалось, что на LinkedIn висят тысячи позиций, однако основных работодателей я этим исчерпал. Подавался я в основном на Sr. Project Manager или Engineering Manager позиции.

Осознание пришло, когда я стал читать teamblind.com – лучший ресурс в США по анализу рынка в ИТ и levels.fyi где можно посмотреть реальные зарплаты. Раньше я читал Glassdoor, но информация на нем устарела.

Оказалось, что в финансовой сфере в США, которая мне была интересна - плохие условия и токсичная культура, тоже самое в консалтинге кроме компаний из Big4 или MBB где надо работать долгие часы, но возможно получать 1+ миллион долларов в год дослужившись до партнёра. Самыми интересными оказались компании, которые называют FAANG (Fb, Apple, Amazon, Netflix, Google) иногда в место этого списка используют FAANGMULA справедливо добавляя туда Microsoft, Uber, Lyft и Airbnb – все они технологические, инновационные компании не просто создающие бизнес-продукты, но и технологии, которыми пользуются весь мир. Компании, создающие де-факто стандарты разработки цифровых продуктов, инвестирующие в научные исследования, создающие легендарные условия для своих сотрудников, чем привлекают умнейших инженеров и ученных со всего мира.

Читать далее
Total votes 149: ↑133 and ↓16 +117
Comments 124

Что можно положить в тег <head>

Reading time 14 min
Views 24K
HTML Academy corporate blog Website development *Semantics *HTML *
Tutorial
Translation

Рекомендуемый минимум

Ниже приведены основные элементы для любого веб-документа (веб-сайта/приложения):

meta charset — определяет кодировку веб-сайта, стандартом является utf-8.

meta name="viewport" — настройки viewport, связанные с мобильной отзывчивостью

width=device-width — физическая ширина устройства (отлично подходит для мобильных устройств!)

initial-scale=1 — начальный масштаб, 1 означает отсутствие масштабирования

Элементы

Допустимые элементы <head> включают meta, link, title, style, script, noscript и base.

Эти элементы предоставляют информацию о том, как документ должен восприниматься и отображаться веб-технологиями, например, браузерами, поисковыми системами, ботами и так далее.

Читать далее
Total votes 35: ↑35 and ↓0 +35
Comments 23

Мобильные антивирусы не работают

Reading time 13 min
Views 20K
Antivirus protection *Development of mobile applications *

TL;DR если на ваших корпоративных мобильных устройствах нужен антивирус, значит вы делаете все неправильно и антивирус вам не поможет.

Этот пост — результат жарких споров на тему того, нужен ли на корпоративном мобильном телефоне антивирус, в каких случаях он работает, а в каких бесполезен. В статье разбираются модели угроз, от которых в теории должен защищать антивирус.

Продавцам антивирусов часто удается убедить корпоративных клиентов, что антивирус сильно повысит их безопасность, но в большинстве случаев это иллюзорная защита, из-за которой только снижается бдительность как пользователей, так и администраторов.
Читать дальше →
Total votes 28: ↑27 and ↓1 +26
Comments 77

Использование Grid для макетов страниц, а Flexbox — для макетов компонентов

Reading time 14 min
Views 31K
RUVDS.com corporate blog Website development *CSS *JavaScript *
Translation
Мой брат недавно отучился на компьютерщика и сейчас завершает стажировку в области фронтенд-разработки. Он узнал и о CSS Grid, и о CSS Flexbox, но в том, как он пользуется этими механизмами создания макетов, я отметил одну особенность, с которой я уже сталкивался. А именно, ему тяжело даётся принятие решений о том, когда использовать Grid, а когда — Flexbox. Например, он использовал CSS Grid для создания макета заголовка сайта. При этом он отметил, что довести проект до ума ему было нелегко, и что ему пришлось долго экспериментировать с grid-column и настраивать всё до тех пор, пока у него не получилось то, что ему было нужно.



Честно говоря, мне это не понравилось. Поэтому я решил поискать какой-нибудь ресурс, который помог бы моему брату как следует уяснить различия между Grid и Flexbox и дал бы возможность взглянуть на примеры, созданные с использованием обеих этих технологий. Но ничего подходящего мне найти не удалось. Тогда я решил написать статью, посвящённую Grid и Flexbox. Надеюсь, она получилась понятной.
Читать дальше →
Total votes 44: ↑43 and ↓1 +42
Comments 11

Память в JavaScript — без утечек

Reading time 6 min
Views 7.3K
SkillFactory corporate blog High performance *JavaScript *Programming *Studying in IT
Translation
image


То, как вы создаете и получаете доступ к своим данным, может повлиять на производительность вашего приложения. Посмотрим как.

Вступление


JavaScript — это язык очень высокого уровня. Таким образом, большинство разработчиков не задумываются о том, как данные хранятся в памяти. В этой статье мы рассмотрим, как данные хранятся в памяти, как они влияют на процессор и память и как способ, которым вы распространяете данные в JS и обращаетесь к ним, влияет на производительность.

Любовный треугольник


Когда компьютеру необходимо выполнить некоторые вычисления, процессору (ЦП) нужны данные для обработки. Таким образом, в соответствии с поставленной задачей он отправляет в память запрос на выборку данных через шину.

Это выглядит так:

image

Так что это наш романтический треугольник — Процессор -> Шина -> Память
Читать дальше →
Total votes 20: ↑17 and ↓3 +14
Comments 2

10 советов для того, чтобы быть хорошим техническим лидером

Reading time 7 min
Views 8.3K
Programming *Personnel Management *
Sandbox
Привет, Хабр! Представляю вашему вниманию перевод статьи «10 Tips for Being a Good Tech Lead»
автора VijayDeveloper.

Лидерство это не услуга, это умение. Профессионалы, работающие разработчиком программного обеспечения в течение нескольких лет, получают шанс стать технологическим лидером. Однако помните, что «с большой силой приходит большая ответственность».

Существует несколько вещей, о которых необходимо позаботиться, будучи техническим лидером. Очевидно, вам не нужно писать код столько, сколько этого бы потребовалось, будучи разработчиком программного обеспечения. Тем не менее, есть вещи, не связанные с кодом, которые теперь являются вашей обязанностью.
Читать дальше →
Total votes 26: ↑22 and ↓4 +18
Comments 8

Как мы разбили разработку на команды (и забыли про бесконечные спринты и бесполезные стендапы)

Reading time 6 min
Views 15K
UniSender corporate blog Development Management *Project management *


Я — PM в сервисе рассылок UniSender. 6 лет назад я пришёл программистом, а теперь отвечаю за взаимодействие между командами продукта. Раньше наша разработка состояла из одной распределённой команды и у нас было 2 беды. Но не дураки и дороги, а задержки по спринтам и скучные стендапы на полчаса.

Расскажу, как мы их решили.
Читать дальше →
Total votes 42: ↑29 and ↓13 +16
Comments 42

Английский по-программистски

Reading time 4 min
Views 19K
Learning languages
Чуть менее года назад я всерьез решил подтянуть английский, изучая его самостоятельно всеми доступными методами: прослушивание новостей, подкастов и книг, чтение художественной литературы, в том числе и в слух, ведение дневника и, конечно же, с помощью различных программ. Столкнувшись с последними, я понял, что можно написать аналоги как минимум не хуже. Что у меня в итоге получилось — под котом.


Читать дальше →
Total votes 27: ↑27 and ↓0 +27
Comments 15

Опыт перехода с Sublime на Vim

Reading time 22 min
Views 75K
Website development *PHP *VIM *
Sandbox


Данная статья не раскрывает всех премудростей перемещения по тексту или его редактирования. Основные движения можно узнать в vimtutor, остальные комбинации изучаются в процессе работы. Некоторые из них, особо важные в процессе программирования, я освещу позже.

Я достаточно долгое время использовал sublime (около 4 лет) в качестве основной среды разработки, но в последнее время кое-что изменилось: я освоил слепой 9-ти пальцевый метод печати. В тот момент я начал понимать людей, которым неудобно тянуться к мышке или стрелочкам. Убирать пальцы с «домашних» позиций стало неестественно и непродуктивно. Тогда я включил vintage. Проблема, вроде бы, стала неактуальна, но чего-то не хватало. Не помню, что заставило меня пересесть за vim, но мне всегда нравилось, как в нем выделяются фигурные скобки (MatchParen) и как выглядит курсор :). Vim я пробовал и до этого, когда правил конфиги на сервере, правда, вся «магия» ограничивалась переходом в режим вставки и успешным сохранением/выходом из редактора.
Читать дальше →
Total votes 62: ↑55 and ↓7 +48
Comments 123

Code review: вы делаете это неправильно

Reading time 21 min
Views 69K
Badoo corporate blog Programming *Development Management *Project management *Personnel Management *

Сегодня очень многие в разработке используют ревью кода. Практика полезная, нужная. Даже если вы не делаете ревью, вы наверняка знаете, что это такое.

На рынке есть куча инструментов для ревью кода с готовыми сценариями использования, рекомендациями и правилами. GitHub, Phabricator, FishEye/ Crucible, GitLab, Bitbucket, Upsource — список можно долго продолжать. Мы в Badoo тоже в своё время с ними работали: в своей предыдущей статье  я рассказывал нашу историю ревью кода и о том, как мы пришли к изобретению собственного «велосипеда» — решения Codeisok.

Информации предостаточно, можно нагуглить кучу статей про ревью кода с реальными примерами, практиками, подходами, рассказывающих о том, как хорошо, как плохо, как нужно делать, а как — не нужно, что стоит учитывать, а что — нет, и т. д. В общем, тема «обсосана до косточек».

Именно поэтому другую часть айсберга можно и не заметить.
Читать дальше →
Total votes 85: ↑71 and ↓14 +57
Comments 84

Создание игры Tower Defense в Unity — Часть 2

Reading time 18 min
Views 19K
Game development *Unity3D *
Translation
image

Это вторая часть туториала «Создание игры Tower Defense в Unity». Мы создаём в Unity игру жанра tower defense, и к концу первой части, научились размещать и апгрейдить монстров. Также у нас есть один враг, нападающий на печенье.

Однако враг пока не знает, куда ему смотреть! Кроме того, нападение в одиночку выглядит странно. В этой части туториала мы добавим волны врагов и вооружим монстров, чтобы они могли защищать драгоценную печеньку.
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Comments 1

Классическое наследование в JavaScript. Разбор реализации в Babel, BackboneJS и Ember

Reading time 11 min
Views 12K
JavaScript *ООP *
Recovery mode
В этой статье мы поговорим о классическом наследовании в JavaScript, распространённых шаблонах его использования, особенностях и частых ошибках применения. Рассмотрим примеры наследования в Babel, Backbone JS и Ember JS и попытаемся вывести из них ключевые принципы объектно-ориентированного наследования для создания собственной реализации в EcmaScript 5.

Статья для тех, кто знаком с наследованием в других языках и сталкивался с попытками эмулировать подобное поведение в JavaScript, а также для тех, кому интересно заглядывать «под капот» различных библиотек и фреймворков, сравнивая их реализацию. Оказывается, простую функцию extend можно реализовать очень по-разному. Нередко при этом допускаются ошибки (см. пункт «Самая распространённая ошибка» ниже).
Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Comments 8

Используем Webpack вместо Sprockets в Ruby on Rails

Reading time 10 min
Views 14K
Website development *JavaScript *Ruby on Rails *
Tutorial
Sandbox

За работу frontend части приложения в Ruby on Rails отвечает библиотека Sprockets, которая не дотягивает до потребностей современного frontend приложения. В чем именно не дотягивает можно почитать, например, здесь и здесь.


Хотя уже есть достаточно статей на тему связки webpack+rails и даже специальный гем есть, предлагаю посмотреть на еще один велосипед, умеющий также деплой делать.



Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Comments 10

Information

Rating
Does not participate
Location
Хайфа, Хайфа, Израиль
Date of birth
Registered
Activity