Pull to refresh
1
0
Александр @Against-vegetables

Фронтенд-разработчик

Send message

Германия, или Туда и Обратно — 1

Reading time14 min
Views67K
Почти два года назад, под Новый год, у меня зазвонил телефон.

После пары дежурных фраз «как сам, как дети» меня позвали работать в Германию.



Я крепко призадумался.

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

Итак, под бой курантов мы с супругой приняли решение: «Ехать!»

Кто хочет прочитать про мой увлекательный, но весьма субъективный опыт переезда в Германию — добро пожаловать под кат.
Читать дальше →
Total votes 153: ↑149 and ↓4+145
Comments728

Введение в программирование: простой 3D-шутер с нуля за выходные, часть 1

Reading time8 min
Views75K
Этот текст предназначен для тех, кто только осваивает программирование. Основная идея в том, чтобы показать этап за этапом, как можно самостоятельно сделать игру à la Wolfenstein 3D. Внимание, я совершенно не собираюсь соревноваться с Кармаком, он гений и его код прекрасен. Я же целюсь совсем в другое место: я использую огромную вычислительную мощность современных компьютеров для того, чтобы студенты могли создавать забавные проекты за несколько дней, не погрязая в дебрях оптимизации. Я специально пишу медленный код, так как он существенно короче и просто понятнее. Кармак пишет 0x5f3759df, я же пишу 1/sqrt(x). Мы преследуем разные цели.

Я убеждён, что хороший программист получается только из того, кто кодит дома в своё удовольствие, а не только просиживает штаны на парах в университете. В нашем университете программистов учат на бесконечной череде всяких библиотечных каталогов и прочей скукоте. Брр. Моя цель — показать примеры проектов, которые интересно программировать. Это замкнутый круг: если интересно делать проект, то человек проводит над ним немало времени, набирается опыта, и видит вокруг ещё больше интересного (оно же стало доступнее!), и снова погружается в новый проект. Это называется проектное обучение, вокруг сплошной профит.

Простыня получилась длинная, поэтому я разбил текст на две части:


Выполнение кода из моего репозитория выглядит вот так:


Это не законченная игра, но только заготовка для студентов. Пример законченной игры, написанной двумя первокурсниками, смотрите во второй части.
Читать дальше →
Total votes 74: ↑74 and ↓0+74
Comments65

Ракета 9М729. Несколько слов о “нарушителе” Договора РСМД

Reading time6 min
Views110K
Речь сегодня о крылатой ракете 9М729, но для начала, немного истории — Договор об ограничении ракет средней и малой дальности (РСМД) заключен между СССР и США в 1987 г. По данному договору запрещено создание и развертывание баллистических и крылатых ракет наземного базирования дальностью действия от 500 до 5500 км. То есть и СССР и США сократили по Договору РСМД целые классы ракетных систем — баллистические ракеты малой дальности (ракетные комплексы “Ока” и “Темп-С”), мобильные баллистические ракеты средней дальности (комплексы РСД-10 “Пионер” / SS-20 и Pershing-2) и крылатые ракеты средней дальности (мобильные комплексы Gryphon с ракетами Tomahawk, а также его отечественный аналог — комплекс РК-55 «Рельеф» с ракетами КБ “Новатор”, аналогичными морским ракетам “Гранат”). Договор действовал несколько десятилетий.

Пока 5 марта 2013 года в США не вышла статья относительно известного своими связями в Пентагоне обозревателя Билла Гертца, который выразил обеспокоенность американской стороны испытаниями новейшей российской баллистической ракеты РС-26 “Рубеж”, которая якобы по своим возможностям будучи формально МБР (межконтинентальной баллистической ракетой, ракетой с дальностью более 5500 км) на самом деле является ракетой средней дальности. Тема в общем мутная и пахнет инсинуациями с обеих сторон. Но тут программа создания ракет “Рубеж” / “Рубеж-Авангард” попала под секвестр и комплекс «Рубеж» оставили в покое.

image
Крылатая ракета 9М728 / Р-500 комплекса «Искандер-М» на начальном этапе полета до раскрытия крыла. Учения «Восток-2014». Еврейская АО, 20.09.2014 г.
Читать дальше →
Total votes 107: ↑72 and ↓35+37
Comments1358

Современный CSS для динозавров

Reading time20 min
Views70K

— Двигать пиксели в CSS и так было трудно! А теперь мне говорят, насколько круто использовать несемантические названия классов, встроенные стили в HTML и даже писать стили CSS на JavaScript!
[Вставь тут гифку из «Гриффинов»] — Ха!
Иллюстрации из Dinosaur Comics Райана Норта


Как ни странно, CSS считается одновременно одним из самых простых и одним из самых сложных языков для веб-разработчика. Определённо он достаточно прост в начале — вы определяете свойства стиля, значения для конкретных элементов и… это практически всё, что нужно знать! Однако в больших проектах ситуация становится довольно запутанной и сложной, чтобы организовать CSS каким-то осмысленным образом. Изменение любой строчки CSS для стилизации элемента на одной странице часто ведёт к непредвиденным последствиям для элементов на других страницах.

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

Цель этой статьи — показать исторический контекст, как развивались техники и инструменты CSS до их нынешнего состояния в 2018 году. Поняв эту историю будет легче понять каждый подход и как с выгодой его использовать. Итак, начнём!
Читать дальше →
Total votes 43: ↑39 and ↓4+35
Comments41

Как «научиться учиться» — советы, рекомендации и научные исследования

Reading time6 min
Views135K

Часть 1. «Очевидные» советы


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

Все это, безусловно, хорошо, но чем конкретно эти прописные истины могут помочь студенту? Как организовать режим дня так, чтобы больше успевать и лучше запоминать материал? Есть ли реальная связь между чувством жажды и когнитивными способностями? Правда ли, что спорт помогает в учебе (и речь не только о дополнительных баллах к ЕГЭ за значок ГТО)?

Попробуем разобраться со всем ниже.

Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments18

Чеклист фронтенд-разработчика

Reading time12 min
Views70K
Глеб Летушов, редактор-фрилансер, адаптировал для блога Нетологии чеклист с Github от David Dias. Этот чеклист уже переводили, но так как на Хабре его нет, мы решили, что он пригодится. В чеклисте собран полный список элементов, которые необходимо проверить перед запуском и публикацией сайта.



Список основан на многолетнем опыте фронтенд-разработчиков, а дополнения собраны из общедоступных источников.
Читать дальше →
Total votes 30: ↑24 and ↓6+18
Comments21

Git: советы новичкам – часть 1

Reading time8 min
Views141K
В Playrix приходит много новых сотрудников и большинство из них не работали с Git. Особенно это касается гейм-дизайнеров и художников. Хотя и для программистов это не редкость – опыт работы с другими системами контроля версий не слишком помогает. Например, часто встречается опыт работы с SVN. Но Git заметно отличается по идеологии. Заучить, какие кнопки нажимать, в большинстве случаев не сложно, но шаг в сторону – и уже трудно понять, что происходит.



Поэтому мы решили написать ознакомительный материал. Мы поговорим о системе контроля версий и логике её работы, с самых азов. С Git можно работать с помощью  разных клиентов, потому в статье не пойдет речь об интерфейсе пользователя. Это может показаться непривычным, но это сделано намеренно. Вместо этого мы сфокусируемся на рабочем каталоге, коммитах, ветках, командах pull, push и прочих. Когда вы разберетесь в этих понятиях, вам останется выбрать один из Git-клиентов и освоить его интерфейс.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments45

Назови мне свою зарплату, и я скажу кто ты

Reading time6 min
Views151K
Эта статья родилась в качестве ответа на вот эту вот статью. А именно на вот этот пункт:
«Правило Лебедева» — никто внутри компании не должен знать, сколько получает другой. Не соблюдает ваш зам — увольняйте; не соблюдает профессионал — увольняйте; вы сами обмолвились — с этого момента работать у вас никто не будет, получать зарплату будут, а работать — нет. Будут выполнять письменно сказанное, но буквально понятое. Если профессионал получает много — это хорошо. Если об этом знают другие, они исследуют, а не говно ли он как человек.
Читать дальше →
Total votes 233: ↑205 and ↓28+177
Comments748

Почему программисты не получают работу: четыре страшилки

Reading time7 min
Views67K
tl;dr; В рекрутинге больше бардака, чем вы думаете. Расскажу четыре истории, где отличным инженерам отказали по причинам, абсолютно не связанным с их профессиональными знаниями или соответствием корпоративной культуре.

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

Страшилка № 1: кандидата отвергли из-за фреймворка


На позицию фронтенд-разработчика в агентстве я передал инженера, который участвовал в разработке ECMAScript и сделал значительный вклад в некоторые другие проекты open source. Мне понадобилось несколько недель, чтобы найти этого человека, и несколько часов для его правильной оценки, включая видеоинтервью (мы любим такое делать на coderfit.com). Его кандидатуру отверг программист из агентства после 10-минутного просмотра примеров кода. С ним даже не пообщались лично, а просто прислали «консерву» — шаблонное письмо по электронной почте:

«[…]Хотя ваше резюме и сопроводительное письмо очень конкурентоспособны, наши специалисты по найму рассмотрели вашу заявку и не выбрали её для дальнейшего рассмотрения. […]»
Читать дальше →
Total votes 107: ↑100 and ↓7+93
Comments694

Каково это — быть разработчиком в России, когда тебе сорок

Reading time37 min
Views161K
Привет всем, я — сорокалетний программист-самоучка, а это моя история.

Пару недель назад я наткнулся на график распределения людей, интересующихся технологиями, ИТ и программированием. И он заставил меня задуматься о моей карьере.



Через каких-то 20 лет мне стукнет 60. И вероятность того, что я еще смогу заниматься тем, для чего был создан, составляет очень крошечную величину. Эти размышления привели меня туда, откуда все начиналось.

Я дебютировал в роли разработчика программного обеспечения в 1990 году, через год после того, как мне на 14-тилетие родители подарили ПЭВМ «Микроша».
Читать дальше →
Total votes 353: ↑338 and ↓15+323
Comments788

Социнжиниринг в военной пропаганде

Reading time13 min
Views87K


Во время Второй мировой англичане достали личные дела командиров немецких подлодок. Вроде бы не очень важная информация для военных целей – лодки-то уже вышли на задания, что им сделаешь. Но к делу подключились тёртые специалисты по пропаганде. У союзников были ежедневные радиопередачи, и вот пример:
— Мы обращаемся к вам, командир подводной лодки «U-507» капитан-лейтенант Блюм. С вашей стороны было очень опрометчиво оставить свою жену в Бремене, где в настоящее время проводит свой отпуск ваш друг капитан-лейтенант Гроссберг. Их уже, минимум, трижды видели вместе в ресторане, а ваша соседка фрау Моглер утверждает: ваши дети отправлены к матери в Мекленбург…
Цитата из «Операция «Гроза» — И. Бунич
Красота, правда? И, главное, в точности соответствует одному из базовых методов социнжинирингового проникновения внутрь инфраструктуры при направленной атаке.

В общем, так получилось, что многие современные методы пиара пошли от наших, английских и немецких разработок времён Второй Мировой войны. И пока я писал книгу про то, как рассказывать людям о своей компании, понадобилось залезть для подтверждения и поднять пару исторических фактов. Заодно вскрылся отличный слой совершенно диких — ну или прекрасных — историй и методик убеждения. Про них и расскажу.
Читать дальше →
Total votes 212: ↑207 and ↓5+202
Comments801

Путешествие за бугор и обратно: как не надо устраиваться работать за рубежом

Reading time11 min
Views216K

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


В этой статье хочу поделиться с вами своей историей неудачной эмиграции в Прагу и работы с неудачным работодателем, и помочь избежать совершения ошибок, которые совершил я. Немного о себе: меня зовут Алексей, я Java-разработчик, переехал в Санкт-Петербург из Новосибирского Академгородка.


image
Читать дальше →
Total votes 414: ↑403 and ↓11+392
Comments1266

33 способа ускорить ваш фронтенд в 2017 году

Reading time20 min
Views85K

enter image description here


Вы уже используете прогрессивную загрузку? А как насчёт технологий Tree Shaking и разбиения кода в React и Angular? Вы настроили сжатие Brotli или Zopfli, OCSP stapling и HPACK-сжатие? А как у вас обстоят дела с оптимизацией ресурсов и клиентской части, со вложенностью CSS? Не говоря уже о IPv6, HTTP/2 и сервис-воркерах.

Читать дальше →
Total votes 87: ↑84 and ↓3+81
Comments39

В чём разница между React и Vue?

Reading time10 min
Views50K
Однажды мы уже публиковали материал, посвящённый сравнению React и Vue. Это был практический пример, на котором можно было увидеть сходства и различия этих фреймворков в довольно-таки мелких деталях. Сегодня мы хотим поделиться с вами переводом статьи, автор которой, Джон Ханна, рассматривает React и Vue в более крупном масштабе. Он говорит о том, что в сегодняшнем мире веб-разработки можно видеть, во-первых, господство React, а во-вторых — взрывной рост популярности Vue. Если существующие тренды продолжатся, весьма вероятно, что к концу 2018-го года Vue обойдёт Angular и займёт второе место в рейтинге самых используемых веб-инструментов.


Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments49

Что такое блокчейн и зачем он нужен

Reading time5 min
Views289K


В сознании среднестатистического пользователя само слово “блокчейн” (“цепочка блоков”) стало довольно тесно связано с термином “биткоин”, что двояко отразилось на восприятии.

С одной стороны, популярность биткоина вызывает интерес и к блокчейну, с другой стороны, в массовом сознании биткоин часто ассоциируется лишь с чем-то негативным, запрещенным и подвергаемым преследованию со стороны законодателей. Мол, зачем расплачиваться биткоинами, когда есть целый зоопарк электронных кошельков и банковских карт? Ясное дело – чтобы проворачивать какие-то темные делишки.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments48

Как «пробить» человека в Интернет: используем операторы Google и логику

Reading time9 min
Views928K

В очередной статье нашего цикла публикаций, посвященного интернет-разведке, рассмотрим, как операторы продвинутого поиска Google (advanced search operators) позволяют быстро находить необходимую информацию о конкретном человеке.


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


Читать дальше →
Total votes 122: ↑105 and ↓17+88
Comments108

Делаем адаптивный HTML, добавляя одну строку в CSS

Reading time4 min
Views191K
image

В этой статье я расскажу вам, как использовать CSS Grid для создания супер классной сетки изображений, которая варьирует количество столбцов в зависимости от ширины экрана.

И самое классное: адаптивность будет добавлена с помощью одной строки CSS.
Это означает, что нам не нужно загромождать HTML лишними классами (Col-sm-4, col-md-8) или создавать медиа-запросы для каждого размера экрана.

Рассмотрим все подробнее.
Читать дальше →
Total votes 67: ↑66 and ↓1+65
Comments103

Модульная сетка макета с нуля: анализ, расчет и построение

Reading time13 min
Views165K
Intro

Краткая предыстория


Привет, Хабр. Я читаю тебя без малого 10 лет, но ни разу не писал статей. Сначала сказать было нечего, потом — некогда. Но сегодня звёзды сошлись и подвернулась подходящая тема. Модульная сетка.


Казалось бы, набросать сетку — дело пяти минут. Всё разжёвано до нас, и бутстрапы есть на любой вкус, и «Аннушка уже пролила своё масло...». Но на практике у дизайнеров частенько возникают вопросы. Многих вводят в ступор даже небольшие отступления от привычных 12-колоночных сеток, потому что им не до конца понятны принципы построения.


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


Словом, в очередной раз отвечая на вопрос по модульной сетке и не найдя ни одной подходящей ссылки, решил как-то обобщить в заметке всё, что размазывалось по десяткам комментариев на разных сайтах.


Как работает сетка


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


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


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

Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments4

Information

Rating
Does not participate
Location
Казань, Татарстан, Россия
Date of birth
Registered
Activity