Обновить
10
0
Сысолятин Павел@PSyton

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

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

Упрощаем написание резюме разработчика

Время на прочтение10 мин
Охват и читатели18K

Проблема


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



Для тех, кому не интересна лирика, и кто хочет сразу перейти к делу — то вперед на github. А для тех, кому важна механика и история проекта — собственно и посвящена статья.


С появлением специализированных ресурсов биржы труда, таких как LinkedIn, HeadHunter и др., казалось бы, ситуация должна была улучшиться — заполняем весь опыт в одном месте, и больше прошлое не ворошим. Но не тут-то было — заполнили в одной системе, нельзя просто по клику мышки выгрузить ее в другую. Нету единой БД, на которую можно линковать свою учетную запись. Оно и понятно — подобные компании заинтересованы вытеснить других, а не заниматься интеграцией друг с другом, а простым кандидатам в итоге становится только хуже.

Читать дальше →

Анимация подчёркивания ссылок на чистом CSS

Время на прочтение2 мин
Охват и читатели44K
Одно из преимуществ создания моего личного сайта с нуля вместо использования готовой темы заключается в том, что я начинаю с настроек браузера по умолчанию и постепенно добавляю собственные расцветки. Я стараюсь удержать сайт от раздувания, но и персонализация — важное дело. Нужно найти некий компромисс между спартанскими страницами Hacker News и Craigslist с одной стороны и перегруженностью старого MySpace с другой.

Как-то мне попался сайт с причудливыми анимированными подчёркиваниями для ссылок, и я захотел реализовать эффект. Но мне важно использовать чистый CSS, потому что ради таких легкомысленных вещей негоже добавлять JavaScript, который может вызвать проблемы с производительностью или удобством интерфейса (см. угон полосы прокрутки).

Генератор клиента к базе данных на Golang на основе интерфейса

Время на прочтение12 мин
Охват и читатели18K

Генератор клиента к базе данных на Golang на основе интерфейса.



Для работы с базами данных Golang предлагает пакет database/sql, который является абстракцией над программным интерфейсом реляционной базы данных. С одной стороны пакет включает мощную функциональность по управлению пулом соединений, работе с prepared statements, транзакциями, интерфейсом запросов к базе. С другой стороны приходится написать немалое кол-во однотипного кода в веб приложении для взаимодействия с базой данных. Библиотека go-gad/sal предлагает решение в виде генерации однотипного кода на основе описанного интерфейса.

Читать дальше →

Про Flutter, кратко: Основы

Время на прочтение12 мин
Охват и читатели413K

Про Flutter, кратко: Основы


После доклада Юры Лучанинова, я решил для себя попробовать Flutter. Чтобы мозг размять, и чтобы было о чем похоливарить с мужиками на кухне. Дело пошло. Я начал смотреть, потом читать, потом писать. И вроде все получается, приложения запускаются, и то что объясняют — понятно, все просто. Но не без “но” — объясняют не все. А поскольку платформа, ЯП, подходы и даже предметная область для меня новые, то подобное вызывает раздражение, ведь у тебя “не запускается”, а ты даже не знаешь что гуглить: Dart/Flutter/Window/Screen/Route/Widget?


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

Читать дальше →

Оптимизация обработки событий в Angular

Время на прочтение8 мин
Охват и читатели16K

Введение


Angular предоставляет удобный декларативный способ подписки на события в шаблоне, с помощью синтаксиса (eventName)="onEventName($event)". Вместе с политикой проверки изменений ChangeDetectionStrategy.OnPush подобный подход автоматически запускает цикл проверки изменений только по интересующему нас пользовательскому вводу. Иными словами, если мы слушаем (input) событие на <input> элементе, то проверка изменений не будет запускаться, если пользователь просто кликает по полю ввода. Это значительно улучшает
производительность, по сравнению с политикой по умолчанию (ChangeDetectionStrategy.Default). В директивах мы также можем подписаться на события на хост-элементе через декоратор @HostListener('eventName').


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

Читать дальше →

Дружелюбная защита WEB ресурса от атак перебором

Время на прочтение4 мин
Охват и читатели12K
Одна из проблем, которая возникает перед WEB-ресурсами имеющими персональные кабинеты — атака перебором. Да, простой перебор всех вариантов пароля для конкретной учетки. Тупо? Возможно, но такая атака может сильно нагрузить ресурс. К тому же, если контроля сложности пароля пользователя при регистрации нет, она может оказаться еще и успешной.

Чаще всего, вопрос решается относительно просто. Если пользователь ввел несколько раз неправильно пароль, его учетка блокируется на какое-то время. Альтернативное решение — выводить капчу. Сразу, или после нескольких неудачных попыток. Ну, и не забудем про 2F авторизацию, которая почти неуязвима. Казалось бы — профит! Но, не все так радужно…
Читать дальше →

React.js: понятное руководство для начинающих

Время на прочтение19 мин
Охват и читатели527K
Автор статьи, перевод которой мы публикуем, считает, что, к несчастью, в большинстве из существующих руководств по React не уделяется должного внимания ценным практическим приёмам разработки. Такие руководства не всегда дают тому, кто по ним занимается, понимание того, что такое «правильный подход» к работе с React.

image

В этом руководстве, которое рассчитано на начинающих разработчиков, имеющих знания в области HTML, JavaScript и CSS, будут рассмотрены основы React и самые распространённые ошибки, с которыми может столкнуться программист, пользующийся данной библиотекой.
Читать дальше →

Видеотрансляция на вашем сайте, которая работает

Время на прочтение4 мин
Охват и читатели19K


Создавая систему видеонаблюдения «Линия», мы разработали мощный инструмент для онлайн-трансляций. На «Хабре» данная тема остается неизменно популярной: здесь подробно описывались как готовые решения, так и кейсы по созданию сервера онлайн-вещаний. Мы решили пойти дальше и собираемся устроить стресс-тест нашему сервису и испытать на себе легендарный хабраэффект. А попутно расскажем о самых интересных трансляциях за последние полгода.
Читать дальше →

Умные часы, которые не требуют зарядки. Много ли их?

Время на прочтение3 мин
Охват и читатели45K
Время автономной работы — один из самых критикуемых параметров современных умных часов. И каждый производитель по-разному подбирается к решению проблемы. В последнее время все больше появляется вариантов, когда часы должны работать вечно, «питаясь» теплом, солнцем, святым духом, кинетической энергией и т. п. Мы собрали несколько наиболее ярких примеров, концепций, прототипов и рабочих гаджетов в этой подборке.


Читать дальше →

Protobuffers — это неправильно

Время на прочтение10 мин
Охват и читатели59K
Значительную часть своей профессиональной жизни я выступаю против использования Protocol Buffers. Они явно написаны любителями, невероятно узкоспециализированы, страдают от множества подводных камней, сложно компилируются и решают проблему, которой на самом деле нет ни у кого, кроме Google. Если бы эти проблемы протобуферов остались в карантине абстракций сериализации, то мои претензии на этом и закончились бы. Но, к сожалению, плохой дизайн Protobuffers настолько навязчив, что эти проблемы могут просочиться и в ваш код.

Узкая специализация и разработка любителями

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

Давай просто не будем обсуждать эту тему. Полное раскрытие: мне доводилось работать в Google. Это было первое (но, к сожалению, не последнее) место, где я когда-либо использовал Protobuffers. Все проблемы, о которых я хочу поговорить, существуют в кодовой базе Google; это не просто «неправильное использование протобуферов» и тому подобная ерунда.
Читать дальше →

10 отличных книг на английском для новичков

Время на прочтение5 мин
Охват и читатели53K
Чтение книг в оригинале — один из лучших способов тренировать понимание и восприятие английского языка.

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

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

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

Забирайте и читайте!
Читать дальше →

Учимся на ошибках: оптимизация приложений в App Store и Google Play

Время на прочтение14 мин
Охват и читатели18K
Привет!

Меня зовут Алтай и я уже более трёх лет изучаю ASO (App Store Optimisation). По-русски, оптимизация приложений в магазинах приложений. Запомним эту аббревиатуру.

А теперь главное – ASO помогло мне сэкономить $500.000. Вот так!

Сразу предупреждаю, я не нуждаюсь в рекламе. Наши приложения имеют достаточно установок благодаря ASO и в этой статье я делюсь своим опытом просто так и не преследую никаких корыстных целей. Моя цель – развить русскоязычное сообщество в сфере продвижения мобильных приложений.

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

Мы в компании занимаемся разработкой детских приложений. Пока мы выпустили только одно приложение в Google Play и App Store и это – Маленькие истории (сказки, где ребёнок становится главным героем). У приложения сейчас 600.000 установок, и почти все эти установки получены бесплатно!

Маленькие истории были зафичерены множество раз в App Store в различных подборках.
*фичеринг – это когда редактора добавляют ваше приложение в какую-нибудь подборку в магазине.

image
Также у нас есть три призовых места на различных конкурсах, причём два из них первые.

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

Полное руководство по правильному использованию анимации в UX

Время на прочтение9 мин
Охват и читатели50K
Предлагаю вашему вниманию перевод очень крутой статьи по анимации интерфейса.
The ultimate guide to proper use of animation in UX автора Taras Skytskyi.



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

Асинхронная бизнес-логика в наши дни

Время на прочтение19 мин
Охват и читатели16K

Вкратце:


  • Пруф уже реализован на C++, JS и PHP, подходит для Java.
  • Быстрее чем coroutine и Promise, больше фич.
  • Не требует выделения отдельного программного стека.
  • Дружит со всеми средствами безопасности и отладки.
  • Работает на любой архитектуре и не требует особых флагов компилятора.

Читать дальше →

Пишем GeoIP exporter для Prometheus с визуализаций в Grafana за 15 минут

Время на прочтение5 мин
Охват и читатели14K


Привет всем!


Я хочу поделиться с вами тем, как легко можно написать свой экспортер для Prometheus на Golang и покажу как это можно сделать на примере небольшой программы, которая следит за тем, откуда географически установлены текущие TCP соединения.

Читать дальше →

Легенда о Фреймворке Всевластия

Время на прочтение11 мин
Охват и читатели13K
В последнее время набирает популярность тренд «исчезающих фреймворков», локомотивом которого, без сомнения, можно считать SvelteJS — buildtime-фреймворк и компилятор в ванильный javascript.

Несмотря на то, что концептуально Svelte весьма прост, а в использовании еще проще, многие разработчики задаются вопросом, в чем же killer-фича данного фреймворка, да и подхода в целом? Почему это не «yet another javascript framework»?

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

Давайте разберемся, но сначала я расскажу вам одну легенду…


Читать дальше →

Пять способов пагинации в Postgres, от базовых до диковинных

Время на прочтение13 мин
Охват и читатели108K
Вас может удивить тот факт, что пагинация, распространенная, как таковая, в веб приложениях, с легкостью может быть реализована нерационально. В этой статье мы испробуем различные способы пагинации на стороне сервера и обсудим их удобство при использовании в PostgreSQL. Статья поможет Вам понять, какая техника более уместна в Вашей ситуации, в том числе некоторые Вы, возможно, не видели прежде, а именно те, которые полагаются на физическую кластеризацию и сборщика статистики базы данных.
Читать дальше →

«Поясняем за чёлку» в Android P. Что делать с Android Cutout?

Время на прочтение5 мин
Охват и читатели21K
Горел сентябрь 2007 года. Шёл сентябрь 2017 года, Apple вернули моду на чёлку, представив iPhone X. Неудивительно, что наши друзья из Китая, недолго думая, скопировали этот дизайн у Apple (хотя самая первая мини-чёлка была ещё в Essential Phone, который не взлетел). Но что мы видим сейчас? Huawei P20, Asus Zenfone 5, OnePlus 6, Motorola One Power, Xiaomi Redmi 6 и другие более-менее известные производители уже выпускают или анонсировали телефоны с чёлкой. Samsung и Google остались последними оплотами в этой гонке за хайпом борьбе за безрамочность. Или нет? По слухам, Google Pixel 3 XL тоже будет с этой хренью с изящным вырезом. Что ж, нам, как разработчикам, остаётся только оптимизировать свои приложения под этот вырез, чтобы пользователи смогли продолжать комфортно ими пользоваться. За подробностями прошу под кат.


Читать дальше →

Методы удержания игроков: примеры из игр различных жанров

Время на прочтение7 мин
Охват и читатели33K
Меня зовут Оксана Фомина, я анализирую поведение пользователей и увеличиваю доходы игры, в том числе за счет повышения удержания игроков.

В первой части статьи «МЕТОДЫ УДЕРЖАНИЯ ИГРОКОВ В СЛОТ-ИГРАХ: Часть 1» я рассмотрела применение методов удержания игроков на примере слот-игр. Статья вызвала неоднозначную реакцию из-за того, что для примера были выбраны игры жанра Казино. Мне поставили минусы в Карму. Я хотела бы объяснить причину такого выбора.

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

image
Читать дальше →

Адаптивный Waveform для вашего аудиосервиса

Время на прочтение6 мин
Охват и читатели9.5K


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

При планируемом будущем редизайне сайта и, возможно, будущих мобильных приложений, растровый waveform тут просто клином упирался. Он не адаптивен, его крайне ресурсоемко редизайнить, если он в растре.
Читать дальше →

Информация

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