Как стать автором
Обновить
-1
0
Ринат @4reddy

Frontend developer

Отправить сообщение

Какой язык программирования выбрать для работы с данными?

Время на прочтение12 мин
Количество просмотров80K


У начинающего специалиста по данным (data scientist) есть возможность выбрать один из множества языков программирования, который поможет ему быстрее освоить данную науку.

Тем не менее, никто точно не скажет вам, какой язык программирования лучше всего подходит для этой цели. Ваш успех как специалиста в данной области будет зависить от множества факторов и сегодня мы постараемся их рассмотреть, а в конце статьи вы сможете проголосовать за тот язык программирования, который вы считаете наиболее подходящим для работы с данными.
Читать дальше →
Всего голосов 23: ↑15 и ↓8+7
Комментарии70

git rebase для начинающих

Время на прочтение4 мин
Количество просмотров191K
В продолжение статьи на тему что сказать git, чтобы он сделал то, что вам нужно и перед статьей как создать PR в чужой Open Source проект на GitHub думаю стоит полезным рассказать о том, что такое git rebase.
Читать дальше →
Всего голосов 26: ↑16 и ↓10+6
Комментарии8

Почему анализ защищенности JavaScript нельзя по настоящему автоматизировать?

Время на прочтение8 мин
Количество просмотров7.6K
Почему в случае JavaScript приходится обходиться простыми подходами статического анализа, когда есть более интересные подходы к автоматическому анализу кода?

В ответ на этот вопрос, мой коллега Алексей Гончаров kukumumu ответил лаконично: «JavaScript это панковский язык» и кинул ссылку на статью Jasper Cashmore «A Javascript journey with only six characters», которая действительно погружает нас в путешествие в эзотерический мир JSFuck и сразу все ставит на свои места.
Мне настолько понравилось, что я решил перевести статью на русский язык.
Читать дальше →
Всего голосов 30: ↑19 и ↓11+8
Комментарии20

Наглядное объяснение чисел с плавающей запятой

Время на прочтение4 мин
Количество просмотров221K
image

В начале 90-х создание трёхмерного игрового движка означало, что вы заставите машину выполнять почти не свойственные ей задачи. Персональные компьютеры того времени предназначались для запуска текстовых процессоров и электронных таблиц, а не для 3D-вычислений с частотой 70 кадров в секунду. Серьёзным препятствием стало то, что, несмотря на свою мощь, ЦП не имел аппаратного устройства для вычислений с плавающей запятой. У программистов было только АЛУ, перемалывающее целые числа.

При написании книги Game Engine Black Book: Wolfenstein 3D я хотел наглядно показать, насколько велики были проблемы при работе без плавающей запятой. Мои попытки разобраться в числах с плавающей запятой при помощи каноничных статей мозг воспринимал в штыки. Я начал искать другой способ. Что-нибудь, далёкое от $(-1)^S * 1.M * 2^{(E-127)}$ и их загадочных экспонент с мантиссами. Может быть, в виде рисунка, потому что их мой мозг воспринимает проще.

В результате я написал эту статью и решил добавить её в книгу. Не буду утверждать, что это моё изобретение, но пока мне не приходилось видеть такого объяснения чисел с плавающей запятой. Надеюсь, статья поможет тем, у кого, как и у меня, аллергия на математические обозначения.
Читать дальше →
Всего голосов 76: ↑73 и ↓3+70
Комментарии46

Основы Docker за Х часов и Y дней

Время на прочтение8 мин
Количество просмотров162K

0. Вступление


Цель данной статьи собрать в небольшую кучку основную информацию, минимально достаточную для того, чтобы начать работать с докер на ежедневной основе и удалить с рабочей машины локально установленные apache, mysql, virtualenv, python3, mongodb, memchaced, redis, php5, php7 и весь остальной зоопарк, который мы используем при разработке, и который зачастую еще и конфликтует между собой от версии к версии.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии16

Пошаговый план старта на Upwork #2

Время на прочтение4 мин
Количество просмотров62K
image

Предыдущая часть.

Надеюсь что вы уже зарегистрировались и заполнили профиль, если нет, то вам в прошлую статью. А мы начнем.

Перед регистрацией советую внимательно прочитать правила биржи, иначе как это было в моем случае — можно улететь в бан «без-воз-мез-дно».
Читать дальше →
Всего голосов 29: ↑24 и ↓5+19
Комментарии53

Идеальная ОС: переосмысление операционных систем для десктопа

Время на прочтение17 мин
Количество просмотров39K
TL;DR: К концу этого эссе я надеюсь убедить вас в следующих фактах. Во-первых, что современные десктопные операционные системы никуда не годятся. Они раздутые, тормознутые и напичканы легаси-хламом, а кое-как работают только благодаря закону Мура. Во-вторых, что инновации в десктопных ОС прекратились около 15 лет назад, а основные игроки вряд ли собираются много вкладывать в них снова. И наконец, я надеюсь убедить вас, что мы можем и должны начать с нуля, усвоив уроки прошлого.

«Современные» десктопные ОС раздуты


Возьмём Raspberry Pi. За 35 долларов я могу купить отличный компьютер с четырьмя процессорными ядрами, каждое на частоте более гигагерца. У него также есть 3D-ускоритель, гагабайт оперативки, встроенные WiFi с Bluetooth и Ethernet. За 35 баксов! И всё-таки для многих задач, которые я хочу на нём запустить, Raspberry Pi ничем не лучше компьютера на 66 мегагерц, который был у меня в колледже.


Читать дальше →
Всего голосов 57: ↑42 и ↓15+27
Комментарии123

Краткое руководство по React JS

Время на прочтение5 мин
Количество просмотров412K
Статья даст вам краткий обзор того, как строятся интерфейсы с помощью React JS.
Вы можете параллельно писать код с помощью starter kit, или просто продолжать читать.
Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии15

Области видимости в JavaScript

Время на прочтение8 мин
Количество просмотров44K
В JavaScript область видимости — это важная, но неоднозначная концепция. Области видимости, при правильном подходе к их использованию, позволяют применять надёжные шаблоны проектирования, помогают избежать нежелательных побочных эффектов в программах. В этом материале мы проанализируем различные типы областей видимости в JavaScript, поговорим о том, как они работают. Хорошее понимание этого механизма позволит вам улучшить качество кода.


Картинка по запросу «области видимости». Извините, если вызвали приступ ностальгии )

Элементарное определение области видимости выглядит так: это область, где компилятор ищет переменные и функции, когда они ему нужны. Думаете, что звучит это слишком просто? Предлагаем разобраться вместе.
Читать дальше →
Всего голосов 36: ↑29 и ↓7+22
Комментарии18

Nuxt.js: 28 килобайт пользы для веб-разработчика

Время на прочтение5 мин
Количество просмотров44K
В эту пятницу на Хабре я прочитал вводную статью про Nuxt.js, но в комментариях резюмировали, что маловато будет. Так случилось, что мы в Voximplant используем эту штуку и она приносит большую пользу. Под катом я расскажу про «киллер фичу» этого микро-фреймворка и где он может пригодиться.
Всего голосов 34: ↑31 и ↓3+28
Комментарии20

Цвет в дизайне интерфейсов: инструкция по применению

Время на прочтение7 мин
Количество просмотров56K


Как создать чистый интерфейс, используя всего лишь один цвет? Вы узнаете из этой статьи. Перевод «Я люблю ИП».


Будучи по большому счёту дизайнером-самоучкой, мне всегда было интересно, почему так много статей и сайтов говорят о теории цвета и цветовых палитрах. По моему опыту, вероятность сделать красивый дизайн, использую «сплит-комплиментарную палитру», стремится к нулю.


У меня есть другое мнение на этот счёт: теория цвета бесполезна.


Но если теория цвета не является прочной основой для выбора цвета в дизайне интерфейсов, то что тогда является?


Вот вам мой ответ: модификация цвета. Всё дело в небольших изменениях цвета, а не в их выборе из цветового круга.


Другими словами: основным навыком в придании цвета дизайну интерфейсов является умение модифицировать один основной цвет во множество различных вариаций.


Я знаю, что это звучит немного странно. Но послушайте меня, я дам вам практическую инструкцию для адаптации цвета в вашем дизайне.


Вы готовы? Тогда поехали.

Читать дальше →
Всего голосов 57: ↑56 и ↓1+55
Комментарии24

Семь удивительных «возможностей» Javascript

Время на прочтение5 мин
Количество просмотров66K
За последние несколько месяцев я сделал несколько доработок для JSHint, в основном с целью изучить ES6 (я особенно горжусь тем, как переделано обнаружение областей видимости для переменных). Во время этого процесса я наткнулся на несколько вещей, которые меня удивили — в основном, в ES6, однако есть и кое-что про ES3, что я до этого никогда не использовал.

Break из любого блока


Наверняка вы знаете, что в любом цикле можно использовать ключевые слова break и continue — это стандартная возможность в современных языках программирования. Однако не все знают, что циклам можно давать метки и с их помощью прерывать любой конкретный цикл:

outer: for(var i = 0; i < 4; i++) {
    while(true) {
        continue outer;
    }
}
Читать дальше →
Всего голосов 78: ↑65 и ↓13+52
Комментарии71

Загрузка с GPT диска из BIOS

Время на прочтение7 мин
Количество просмотров53K
В статье описано как заставить загружаться компьютер с BIOS, с жесткого диска размеченного в GPT. Данная статья является не переводом оригинальной статьи, а скорее вольным пересказом статьи написанной Rod Smith, за которую лично я ему очень благодарен. Ссылка на первоисточник в конце данной статьи.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии13

Как узнать свой внешний IP из программы

Время на прочтение7 мин
Количество просмотров19K


При написании различных программ для работы с сетью, особенно p2p систем, время от времени возникает необходимость узнать внешний IP своего компьютера из программы (тот адрес, по которому Ваш компьютер доступен из Большого Интернета). Часто возникает искушение пойти легким путем и использовать внешние WEB-сервисы, которые по http возвращают Вам IP, или самому развернуть таковой. Хотя такой способ решения задачи и работоспособен, он тем не менее, имеет ряд недостатков:

  • При использовании собственного сервера – нужно где-то его держать и поддерживать, заодно и c соответствующим доменным именем. В случае выхода его из строя, или принудительного отзыва домена, вся Ваша p2p сеть выходит из строя.
  • При использовании внешнего сервера – Вы вводите зависимость своей системы как от его работоспособности, так и от формата ответов, который вообще никак не стандартизирован, и который владелец сервера может поменять в любой момент. С теми же последствиями для вашей сети.
  • http, которым советуют пользоваться – базируется на tcp, то есть протокол сравнительно тяжеловесный, требующий установки соединения и тп. В общем, пользоваться можно, но перерасход ресурса как компьютера, так и сети налицо.
Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии32

Ты не компилятор

Время на прочтение3 мин
Количество просмотров32K
На конференциях часто на стендах раздают подарки. Обычно нужно решить какую-то задачку.

Невинная головоломка


Некоторые из задач предусматривают решение головоломки с кодом, вроде такой:

Каким будет результат выполнения следующего кода:

public class Sum {

    public static void main(String[] args) {
        System.out.println(0123 + 3210);
    }
}

  1. 3293
  2. 3333
  3. Этот код не компилируется
  4. Этот код приводит к ошибке IllegalArgumentException
  5. Ничего из вышеперечисленного

Моя обычная реакция — или немедленно покинуть стенд, или, если время позволяет, набрать код на ноутбуке, чтобы посмотреть результат (или поискать в Google). Вы можете упрекнуть меня в лености, но я предпочитаю представлять себя экспертом по тайм-менеджменту.
Читать дальше →
Всего голосов 98: ↑85 и ↓13+72
Комментарии173

Шпаргалка по Flexbox (CSS3 Flexible Box)

Время на прочтение1 мин
Количество просмотров369K
Мне не нова магия Flexbox, но я не часто ее использую, и поэтому после паузы в использовании мне приходится открывать вот этот пост на CSS-Tricks чтобы освежить память.

Я решила создать краткую визуальную шпаргалку по Flexbox для тех случаев освежения памяти после паузы в будущем. Думаю, что у меня получилась шпаргалка, основанная на… шпаргалках.


Читать дальше →
Всего голосов 78: ↑75 и ↓3+72
Комментарии25

Как я использую git

Время на прочтение6 мин
Количество просмотров91K

Intro


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


  • git add <path>
  • git commit
  • git checkout <path/branch>
  • git checkout -b <new branch>

И дополнительно:


  • git push/pull
  • git merge <branch>
  • git rebase master (а что, можно еще и на другие ветки ребейзить? О_о)

В принципе, я и сейчас во многом так считаю, но со временем волей-неволей начинаешь узнавать интересные трюки.

Читать дальше →
Всего голосов 117: ↑106 и ↓11+95
Комментарии195

Где логика? Учимся мыслить системно. Часть 1

Время на прочтение10 мин
Количество просмотров33K

I Вступление


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

Эдгар Аллан По
Для людей, активно завоевывающих свое место в обществе, в помощь сейчас доступно достаточное количество литературы об ораторском искусстве, о проведении переговоров, о лидерстве и т.п. Но львиную долю этих трудов объединяет то, что в них во всех, авторы учат облюбованным ими методикам человеческих отношений, приемам влияния на людей и т.п. Это напоминает рецепты из поваренной книги: «отмерьте полстакана теории, сдобрите щепоткой логики, смешайте со смелостью по вкусу … подавать себя лучше слегка подогретым».

Я же совсем не хочу навязывать Вам какие-то свои готовые рецепты построения взаимоотношений. Напротив, как профессиональный ИТ аналитик, я хочу подтолкнуть Вас самих активно и мастерски разбирать по косточкам, просвечивать на свет, сравнивать и пробовать на зуб, происходящие вокруг события, влияющие на ваши взаимоотношения с родом человеческим. И уже на основе этого разбора, самим осознанно строить свою модель и стратегию поведения в обществе. Возможно кому-то, этот курс поможет, глядя по телевизору ток-шоу, не кричать его участникам в экран нелицеприятную правду о них, а аргументировано и спокойно поправлять их суждения.

И для этого, я предлагаю Вам вместе со мной в рамках этой статьи, порассуждать над темой общения людей.

Итак, поехали…

Для проведения любого анализа, необходимо какая-то точка отсчета. А поскольку, на мой взгляд, стрежнем в отношениях людей все же является взаимопонимание, ну по крайней мере для успешных взаимоотношений, то давайте попробуем зацепиться именно за эту тему.
Читать дальше →
Всего голосов 21: ↑15 и ↓6+9
Комментарии13

Беседы о Виртуальной реальности. Беседа №1. Реально о Виртуальности

Время на прочтение14 мин
Количество просмотров13K

I Вступление


У того, кто никогда не меняет взглядов, обычно нет никаких взглядов.
Альберто Моравиа.
Долгое время, проработав системным аналитиком в ИТ отрасли, я стал подмечать, что теперь по другому воспринимаю фильмы, так или иначе затрагивающие тему Виртуальной реальности («Матрица», «Начало», «Иллюзия обмана» и другие). Я ловлю себя на мысли, что пытаюсь систематизировать информацию, охарактеризовать суть и форму явлений, разложить сложные понятия на простые и представить, как это все используется в повседневной жизни. Я сейчас не имею в виду компьютерные технологии: шлемы, сенсорное обмундирование и т.п. Все что находится снаружи, не вызывает споров и неоднозначности, занятно обсудить что же там происходит внутри.

Чтобы как-то разобраться с этой навязчивой манией, я решил систематизировать и изложить свои размышления о явлении Виртуальной реальности, Измененном сознании и иже с ними, на бумаге и представить их в данной статье.

С другой стороны эта публикация является логическим продолжением моих статей «Где логика? Учимся мыслить системно» и «Социальный Организм — как форма эффективного взаимодействия команды», в которых я стараюсь популяризировать системное мышление в повседневной жизни, в быту и профессиональной деятельности.

Если Вы хотите об этом поговорить, тогда Вам сюда… Надеюсь, что будет увлекательно и не скучно.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии22

Пять инструментов отладки JavaScript, о которых полезно знать

Время на прочтение5 мин
Количество просмотров27K
Вы смотрите на код и не можете понять — почему! Почему он делает нечто неожиданное, и в общем-то, если не близится дедлайн, интересное. Однако от всех этих неожиданностей, в любом случае, надо избавляться.



Прежде чем вы, бросив всё остальное, кинетесь складывать в кучу найденные где-то строчки программ, которые, вроде бы, способны решить вашу задачу, ответьте пожалуйста на три вопроса:

  1. Выполнение каких действий вы ожидаете от своей программы?
  2. Почему вы ожидаете этого от программы?
  3. Делает ли программа то, что вы от неё ожидаете?

Если вы не можете ответить на первых два вопроса — желаю удачи в копипасте, но, если вы знаете — что вы ожидаете от кода и почему — существуют инструменты, которые способны помочь вам понять, делает ли код то, чего от него ждут.
Читать дальше →
Всего голосов 37: ↑26 и ↓11+15
Комментарии19

Информация

В рейтинге
Не участвует
Откуда
Пермь, Пермский край, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Специалист
Middle
От 40 000 ₽
TypeScript
JavaScript
HTML
CSS
Adaptive layout
Web development
React
Webpack
SCSS
Crossbrowser layout