Как стать автором
Обновить
0
0

Пользователь

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

Как делать сайты в 2019 году

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

Веб стремительно меняется, не отставай и ты!



Я писал подобную статью в 2018 году, но веб меняется так быстро, что те гайдлайны уже безнадёжно устарели.


Давайте-ка шаг за шагом разберём важнейшие принципы веб-дизайна в 2019 году.


Обязательно дайте пользователю знать, что у сайта есть мобильное приложение


Это важнейший принцип, и на то есть свои причины. Фокус-группы, на которые мы уже потратили кучу денег, показали что первое же, чего захочет пользователь попав на ваш сайт — установить мобильное приложение.


Ну а кратчайший путь к этому — показать здоровенное модальное окно:



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


Совет: Если у вас нет мобильного приложения, не беда! Просто запихните весь сайт в  webview с отключенной безопасностью и пишите, что это мобильное приложение!

Читать дальше →
Всего голосов 244: ↑233 и ↓11+222
Комментарии278

Чему я научился на своём горьком опыте (за 30 лет в разработке ПО)

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

Это циничная, клиническая коллекция того, чему я научился за 30 лет работы в разработке программного обеспечения. Повторюсь, некоторые вещи весьма циничны, а остальное — результат долгих наблюдений на разных местах работы.
Читать дальше →
Всего голосов 187: ↑178 и ↓9+169
Комментарии128

Тонкости собеседований при найме на удаленку

Время на прочтение7 мин
Количество просмотров28K
Продолжаем рассказывать о внутреннем устройстве «Максилекта». Мы уже рассказывали об общих принципах найма удаленных специалистов, принятых в компании. Теперь же поговорим о деталях – о том, что именно мы спрашиваем у кандидатов, которые пришли к нам на собеседование.

image

Спойлер: увы, но “правильных ответов” на эти вопросы здесь нет. Их попросту не существует.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии29

11 советов для тех, кто использует Redux при разработке React-приложений

Время на прочтение13 мин
Количество просмотров19K
Когда речь идёт о разработке React-приложений, то, в плане архитектуры кода, маленькие проекты часто бывают более гибкими, чем большие. Нет ничего плохого в том, чтобы создавать такие проекты с использованием практических рекомендаций, нацеленных на более крупные приложения. Но всё это, в случае с маленькими проектами, может оказаться попросту ненужным. Чем меньше приложение — тем «снисходительнее» оно относится к использованию в нём простых решений, возможно — неоптимальных, но не требующих больших затрат времени на их реализацию.



Несмотря на это хотелось бы отметить, что некоторые рекомендации, которые будут даны в этом материале, нацелены на React-приложения любого масштаба.
Читать дальше →
Всего голосов 36: ↑29 и ↓7+22
Комментарии19

Паттерны дизайна уровней для 2D-игр

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

Введение


Дизайнеры многих игр при разработке геймплея полагаются на вариативность контента. Повторяющиеся препятствия приводят к тому, что игроку становится скучно, поэтому дизайнеры обычно стремятся создавать постоянно увлекающий игровой процесс. Чаще всего игры состоят из частей: уровней, механик, графики, звуков и т.д. Одной из наиболее важной является дизайн уровней. Он не привносит в игру новое измерение, а занимается выстраиванием существующих элементов. Из-за большой потребности игр в контенте основной задачей гейм-дизайна становится дизайн уровней. Их роль фундаментально важна, в крупномасштабных проектах ими даже занимается отдельный коллектив, не участвующий в создании дизайна игры и механик.
Читать дальше →
Всего голосов 37: ↑36 и ↓1+35
Комментарии3

Почему ['1', '7', '11'].map(parseInt) возвращает [1, NaN, 3] в Javascript?

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


Javascript — странный. Не верите? Ну попробуйте тогда преобразовать массив строк в целые числа с помощью map и parseInt. Запустите консоль (F12 на Chrome), вставьте код ниже и нажмите Enter


['1', '7', '11'].map(parseInt);

Вместо ожидаемого массива целых чисел [1, 7, 11] мы получаем [1, NaN, 3]. Но как так? Чтобы узнать в чём тут дело, сначала нам придётся поговорить о некоторых базовых концепциях Javascript. Если вам нужен TL;DR, пролистывайте статью до самого конца.

Читать дальше →
Всего голосов 165: ↑134 и ↓31+103
Комментарии145

Telegram. Безлимитный сетевой диск. Бесплатный

Время на прочтение3 мин
Количество просмотров187K
Привет, Хабр.

Наверняка многие об этом задумывались, возможно у кого то эта идея лежит в TODO. У меня она пролежала примерно год, но таки удалось ее реализовать в виде работающего прототипа.

TgCloud:


  • Виртуальная файловая система с открытым исходным г****кодом.
  • На локальном диске — только метаданные: имена, размер, структура папок и т.д.
  • Данные хранятся в Telegram и загружаются только при работе с файлом
  • Размер и тип файлов не ограничен, можно использовать с любой ОС

Подробности реализации и ссылка на репозиторий под катом.
Читать дальше →
Всего голосов 211: ↑175 и ↓36+139
Комментарии232

Тёмные времена наступают

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

Или о чем следует помнить при разработке тёмного режима приложения или сайта


2018 год показал: тёмные режимы на подходе. Теперь, когда мы уже на полпути в 2019, мы можем с уверенностью сказать: они здесь, и они везде.


Пример старого монитора «зеленым-по-чёрному»

Начнем с того, что тёмный режим — это совсем не новая концепция. Его используют уже достаточно давно. А когда-то на самом деле давно только его и использовали: мониторы были вида «зеленым-по-чёрному», но только потому, что люминесцентное покрытие внутри излучало зеленоватое свечение при воздействии на него излучения.


Но даже после внедрения цветных мониторов тёмный режим продолжал жить. Почему же так?

Читать дальше →
Всего голосов 46: ↑42 и ↓4+38
Комментарии92

Беспроводной датчик температуры, влажности и атмосферного давления на nRF52832

Время на прочтение7 мин
Количество просмотров19K
Приветствую всех читателей Habr! Сегодняшняя статья будет о датчике температуры, влажности и атмосферного давления c длительным сроком работы от одной батарейки. Датчик работает на микроконтроллере nRF52832 (даташит). Для получения температуры, влажности и атмосферного давления использован сенсор BME280 — даташит. Датчик работает от батареек CR2430/CR2450/CR2477. Потребление в режиме передачи составляет 8мА, в режиме сна 5мкА. Итак, обо всем попорядку.

Всего голосов 24: ↑20 и ↓4+16
Комментарии26

Автоматика для дома своими руками

Время на прочтение8 мин
Количество просмотров43K
Моя статья будет полезна тем, кто только задумывается над подобного рода системой, поможет определиться делать ли самому и ориентирована в основном на энтузиастов-колхозников. Изначально пишу “автоматика” а не умный дом, потому что на данном этапе умных функций в моей системе управления нет, сейчас стояла задача в сборе данных и управлении устройствами. Всё должно измениться в будущем, когда появятся алгоритмы, которые и сделают дом умным. С моей точки зрения, если вы можете включать свет со смартфона, то это не делает ваш дом умным. Умным он становится когда у вас написаны сценарии, которые помогают вам, облегчают контроль за домом и делают рутинные вещи незаметными для вас. Например, включить свет на крыльце, когда уровень освещённости ниже какого-либо порога, и выключить в два ночи, не включать полив если сегодня обещают осадки с вероятностью больше 60 процентов, если появилось движение в комнате то включить подсветку лестницы и т.д. И только в этом случае он становится “умным”.
Читать дальше →
Всего голосов 63: ↑62 и ↓1+61
Комментарии66

Готовимся к 2020 году: 8 трендов клиентской JavaScript-разработки, о которых нужно знать

Время на прочтение7 мин
Количество просмотров57K
Автор материала, перевод которого мы сегодня публикуем, говорит, что хочет поделиться с читателями прогнозом, который касается развития веб-технологий на ближайшие годы. В частности, здесь речь пойдёт о том, что, по мнению автора, фронтенд-разработчикам, вероятно, стоить начать изучать уже сегодня.

Всё, что связано с JavaScript, очень быстро развивается. Это касается и того, что можно отнести к сфере веб-разработки. В наши дни те, в основе чьих проектов не лежат самые современные технологии, начинают особенно сильно ощущать разрыв между тем, чем они пользуются, и тем новым, что появляется едва ли не ежедневно. К таким технологиям можно отнести Webpack, React, Jest, Vue, Angular в их современном состоянии. В то время как «население» мира фронтенд-разработки, включающее в себя технических специалистов и программистов, постоянно растёт, этот мир стремится к стандартизации. Появление новых технологий и инструментов уже меняет ситуацию.



Можно с изрядной долей уверенности говорить о том, что общим трендом развития фронтенд-технологий будет стандартизация разработки пользовательских интерфейсов. В частности, речь идёт о композиции, основанной на компонентах, о стремлении к модульности систем. Эта тенденция воздействует практически на всё — от стилизации до тестирования и даже до управления состоянием приложений. В этот тренд можно включить технологии, построенные вокруг веб-компонентов, ES-модулей, сюда же попадают соответствующие инструменты и многое другое.
Читать дальше →
Всего голосов 50: ↑45 и ↓5+40
Комментарии25

Реальные сроки изучения слепой печати при низкой мотивации

Время на прочтение4 мин
Количество просмотров75K
В статье я опишу свой сугубо субъективный пример того, сколько времени занимает обучение методу комфортной слепой печати. Это с учётом того, что мне данный навык не был критически важен, но иметь его давно хотелось.


Читать дальше →
Всего голосов 54: ↑49 и ↓5+44
Комментарии198

Node.js: управление памятью, доступной приложениям, выполняемым в контейнерах

Время на прочтение9 мин
Количество просмотров20K
При запуске Node.js-приложений в контейнерах Docker традиционные настройки памяти не всегда работают так, как ожидается. Материал, перевод которого мы сегодня публикуем, посвящён поиску ответа на вопрос о том, почему это так. Здесь же будут приведены практические рекомендации по управлению памятью, доступной Node.js-приложениям, работающим в контейнерах.


Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии3

Осторожный переезд в Нидерланды с женой и ипотекой. Часть 2: подготовка документов и переезд

Время на прочтение16 мин
Количество просмотров64K
Итак, за примерно год (май 2017 — февраль 2018) я, программист C++, нашел-таки работу в Европе. Я десятки раз откликался на вакансии в Англии, Ирландии, Швеции, Нидерландах и даже в Португалии. Я раз двадцать беседовал по телефону, скайпу и прочим системам видео связи с рекрутерами, и несколько меньше — с техническими специалистами. Я ездил в Осло, в Эйндховен и три раза в Лондон на финальные интервью. Все это подробно описано здесь. В итоге я получил один оффер и принял его.



Оффер этот был из Нидерландов. Работодателям в этой стране относительно просто пригласить работника из-за рубежа (не из Евросоюза), поэтому бюрократической волокиты немного, а сам процесс оформления занимает всего несколько месяцев.

Но всегда можно самому себе создать сложности. Что я и сделал, чем затянул свой переезд еще на месяц. Если интересно почитать о хлопотах (нет, не сильно приятных) связанных с переездом IT семьи в Западную Европу — добро пожаловать под кат.
Читать дальше →
Всего голосов 115: ↑105 и ↓10+95
Комментарии187

Осторожный переезд в Нидерланды с женой и ипотекой. Часть 1: поиск работы

Время на прочтение12 мин
Количество просмотров108K
На Хабре да и вообще в русскоязычном Интернете есть немало инструкций о том, как перебраться в Нидерланды. Я и сам немало полезного почерпнул из одной статьи на Хабре (ныне, видимо, скрытой в черновике уже нет, вот она). Но я все-таки расскажу о своем опыте поиска работы и переезда в эту европейскую страну. Помнится, и когда я только собирался рассылать резюме, и когда уже проходил собеседования, мне было очень интересно почитать об аналогичном опыте других коллег по цеху.

image

В общем, если вам интересен рассказ о том, как C++ программист из Подмосковья искал работу в Европе, желательно в Великобритании, а нашел-таки в Нидерландах, переехал туда сам и привез жену, все это с непогашенной ипотекой в России и с небольшими приключениями — добро пожаловать под кат.
Читать дальше →
Всего голосов 216: ↑202 и ↓14+188
Комментарии306

Node.js-проекты, в которых лучше не использовать lock-файлы

Время на прочтение8 мин
Количество просмотров11K
Автор материала, перевод которого мы сегодня публикуем, говорит, что одна из проблем, с которыми приходится сталкиваться программистам, заключается в том, что у них их код работает, а у кого-то другого выдаёт ошибки. Эта проблема, возможно, одна из самых распространённых, возникает из-за того, что в системах создателя и пользователя программы установлены разные зависимости, которые использует программа. Для борьбы с этим явлением в менеджерах пакетов yarn и npm существуют так называемые lock-файлы. Они содержат сведения о точных версиях зависимостей. Механизм это полезный, но если некто занимается разработкой пакета, который планируется опубликовать в npm, lock-файлы ему лучше не использовать. Этот материал посвящён рассказу о том, почему это так.


Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии14

Node.js для начинающих: основы работы с файлами

Время на прочтение4 мин
Количество просмотров55K
Сегодня мы поговорим о том, как работать с файловой системой средствами Node.js, рассмотрим базовые операции, выполняемые с файлами. К таким операциям относятся следующие:

  • Создание файла
  • Чтение файла
  • Запись данных в файл
  • Удаление файла
  • Переименование файла

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


Читать дальше →
Всего голосов 36: ↑31 и ↓5+26
Комментарии1

JavaScript-движки: как они работают? От стека вызовов до промисов — (почти) всё, что вам нужно знать

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

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

Начнём наше путешествие в язык с экскурсии в удивительный мир JavaScript-движков.
Читать дальше →
Всего голосов 73: ↑68 и ↓5+63
Комментарии16

Что в пикселе тебе моем: создание нанопикселей с помощью плазмонных метаповерхностей

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


Взгляните на экран. Что вы видите? Страницу веб-сайта с текстом и картинками, верно? Но, а если копнуть глубже? Все эти разные по смысловой нагрузке и способу подачи элементы состоят из цифровых визуальных «атомов», называемых пикселями. Чем больше пикселей — тем лучше, за исключением некоторых инди-игр. Пиксели, как и любой «атом» во Вселенной, обладает своими определенными свойствами и ограничениями. По крайней мере так было раньше. Сегодня мы познакомимся с исследованием, в котором описывается метод создания нового типа пикселей, в сотни раз меньше и лучше нынешних. Как именно ученым это удалось, какими удивительными характеристиками обладают новые пиксели и смогли бы такие пиксели помочь нам разобрать происходящее во тьме третьей серии восьмого сезона «Игры престолов»? Ответы будем искать в докладе исследовательской группы. Поехали.
Всего голосов 29: ↑26 и ↓3+23
Комментарии3

Как мы боремся с копированием контента, или первая adversarial attack в проде

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

Привет.


Вы знали, что платформы для размещения объявлений часто копируют контент у конкурентов, чтобы увеличить количество объявлений у себя? Они делают это так: обзванивают продавцов и предлагают им разместиться на своей платформе. А иногда и вовсе копируют объявления без разрешения пользователей. Авито — популярная площадка, и мы часто сталкиваемся с такой недобросовестной конкуренцией. О том, как мы боремся с этим явлением, читайте под катом.


Читать дальше →
Всего голосов 228: ↑216 и ↓12+204
Комментарии122

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность