Search
Write a publication
Pull to refresh
10
0
Сысолятин Павел @PSyton

User

Send message

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

Reading time15 min
Views19K
В мире существует множество библиотек, реализующих сигналы в C++. К сожалению, у всех реализаций, с которыми я сталкивался, есть несколько проблем, которые не позволяют писать простой многопоточный код с использованием этих библиотек. Здесь я расскажу об этих проблемах, и о том, как их можно решить.
Читать дальше →

Компиляция SQLCipher для Android x86

Reading time3 min
Views9.1K
Популярная в Android-среде СУБД SQLite позволяет организовывать удобные хранилища данных, её возможностей достаточно для многих приложений, но не для тех, что работают с информацией, которую надо защищать.



Если ваш проект из этой серии, скажем, вы создаёте программу для хранения паролей и пользуетесь SQLite, дополнительные меры безопасности будут очень кстати. Одна из таких мер – шифрование.
Читать дальше →

Интересные способы использования Go каналов (перевод)

Reading time9 min
Views36K
Предлагаю вам перевод статьи Gary Willoughby «Interesting ways of using Go channels».

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

gopher

Интересные способы использования Go каналов


Я написал этот пост, чтобы задокументировать доклад про Go каналы Джона Грэм-Камминга на конференции GopherCon 2014. Доклад назывался «Краткое руководство по каналам» и он доступен для просмотра на youtube.com.

На протяжении доклада нам представляют интересные способы использования Go каналов и раскрывают возможности и преимущества конкурентного программирования. Лично мне этот доклад открыл глаза на несколько новых способов структурирования программ и новых техник для синхронизации по нескольким ядрам процессора.

Следующие примеры демонстрируют различные техники, как использовать каналы в Go. Код был специально упрощен для их понимания. Не стоит его использовать для продакшн версий. Например, пропущены все обработки ошибок.
Читать дальше →

Разница между mp3 128 kbps, 320 kbps и flac

Reading time2 min
Views145K
Добрый день, уважаемые читатели!

А вы когда-нибудь задумывались, что именно теряется при сжатии из lossless в mp3 128 kbps или 320 kbps?
Я проверил и результат показался интересным. В первую очередь предлагаю пройти опрос, чтобы понять для себя слышите ли вообще разницу. Если не уверены, что слышите или уверены, что не слышите, то предлагаю к вашему вниманию простую и изящную идею: надо взять и столкнуть лбом две звуковые волны одна из которых будет находиться в противофазе, соответственно при сведении двух треков будет преимущественно слышно то, что не погасилось. Интересные графики пока не обещаю, но зато вы сможете сами на своей системе услышать какие именно звуки потерялись при сжатии из flac в mp3 128\320 kbps, архив с примерами в конце статьи.
Читать дальше →

Используем VS Code для Веб-разработки

Reading time3 min
Views169K

VS Code (Visual Studio Code) — относительно новый текстовый редактор, выпущенный Microsoft. Он, также как и Atom, основывается на облочке Electron (написанной командой Atom), кардинально отличаясь реализацией самого редактора.


VS Code обладает своими уникальными фичами, такими, как, например, IntelliSense "из-коробки".


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


Осторожно! Под катом много картинок и гифок.

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

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

Reading time4 min
Views14K

Выбор инструмента


image

Проблема профилировки рано или поздно встает перед любым проектом, претендующим на роль лучшего в своей области. Какой инструмент выбрать — всегда большой вопрос. Одни инструменты показывают одну часть картины, другие другую. И рано или поздно начинаешь писать свой тул (англ. tool — орудие\инструмент), который отвечает на насущные проблемы именно данного конкретного проекта. Однако время на написание своего «орудия» всегда приходится вычитать из времени отведенного на сам проект.
Поэтому серьезный профайлер написать не получается…

Но как получить все и сразу? (Тут мне почему то вспоминается песня Queen «I want it all»)
Читать дальше →

Немного об архитектурах программного обеспечения

Reading time7 min
Views65K


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

Создание архитектуры программы или как проектировать табуретку

Reading time25 min
Views710K
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».

Хотелось разобраться, что вообще в себя включает процесс создания архитектуры программы, какие задачи при этом решаются, какие критерии используются (чтобы правила и принципы перестали быть всего лишь догмами, а стали бы понятны их логика и назначение). Тогда будет понятнее и какие инструменты лучше использовать в том или ином случае.

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →

Лучшие бесплатные коллекции векторных иконок

Reading time2 min
Views348K
Привет, Хабр! Сегодня я хочу представить вам огромную коллекцию из 51 набора бесплатных векторных иконок. Да, есть потрясающие ресурсы Flaticon или Iconfinder, но бывают случаи, когда необходима именно группа иконок в едином стилистическом оформлении. Определиться с выбором, вам поможет эта подборка. Я старался собрать не как можно больше, а действительно самое лучшее.

Среди веб-разработчиков существует много споров о том, что лучше: иконочный шрифт или SVG спрайты? Четкого ответа на этот вопрос нет. Каждый выбирает свое. Данные наборы иконок вас неограничиывают в выборе, поскольку представлены в различных форматах: @font-face, SVG, EPS, AI, PSD, Sketch.

В целом данная подборка содержит более 10 000 иконок, охватывающих множество категорий: интерфейсы, технологии, наука, спорт, маркетинг, среда, транспорт и тд. Полые, заполненные, цветные, во Flat, Material, Elegant, Cartoon, Hand drawing стилях.

Responsive Icons (100 иконок, PSD, AI, EPS, SVG)


Responsive Icons

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

Почему прокрастинаторы прокрастинируют (откладывают дела «на потом») и как побороть прокрастинацию

Reading time14 min
Views299K
image

pro-cras-ti-na-tion |prəˌkrastəˈnāSHən, prō-|
существительное
задержка или откладывание чего-либо: первый совет — избегайте прокрастинации.

Кто бы мог подумать, что после десятилетий борьбы с прокрастинацией словари будут содержать решение проблемы.

Избегать прокрастинации. Так элегантно в своей простоте…

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

Нет, «избегайте прокрастинации» — хороший совет только для не настоящих прокрастинаторов. Для тех, кто говорит «Я захожу на Facebook несколько раз в день на работе. Я такой прокрастинатор!». Это те люди, которые будут говорить настоящему прокрастинатору «Не откладывай дела на потом и у тебя все будет хорошо».

Дело в том, что ни словари ни не настоящие прокрастинаторы не понимают, что для настоящих прокрастинаторов прокрастинация — не дополнительная опция. Это что-то, что они не знают как не делать.
Читать дальше →

Сначала дать, но не всем. Потом просить, но не всех. Или как увеличить количество лояльных пользователей

Reading time3 min
Views3.6K
image
Задача: повышение лояльности игроков и получение положительных отзывов. Использование лояльности для продвижения игры.

Метод достижения задачи основан на тесном и главное индивидуальном взаимодействии с игроками и будет рассмотрен на примере использования в игре с реальными цифрами на момент написания статьи.
Читать дальше →

Полезные сниппеты для Nginx конфигов

Reading time5 min
Views123K


Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.

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

Вы все еще храните 404backup.zip на сервере? Я на 200ДА

Reading time2 min
Views42K
Сумеречными зимними вечерами под песнь вьюги, укутавшись в овечий плед с бокальчиком «яблочной самогонки», я люблю почитывать логи на сервере. Авторизация по ключам упрощает сие, так что если в публичное помещение меня и не пустят, то сервер всегда рад приютить, старый чертяга.

В мире много чего происходит, у кого счастливое 200, кто-то недоуменно смотрит на 301, кто-то царапает похабщину на 403.

Но самый ценных мех — это исследователи. Это те, кто открывает новый для себя мир на основе своих знаний путем проб и 404.
Читать дальше →

Как создать круглую Progress Button

Reading time9 min
Views46K
Урок по реализации круглой кнопки загрузки (далее progress button) by Colin Garven. Будем использовать, описанную by Jake Archibald, технику анимации SVG линий для того, чтобы анимировать progress button и показать пользователю состояния «success and fail».

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

У нас проблемы с промисами

Reading time16 min
Views245K
Разрешите представить вам перевод статьи Нолана Лоусона «У нас проблемы с промисами», одной из лучших по теме из тех, что мне доводилось читать.

У нас проблемы с промисами


Дорогие JavaScript разработчики, настал момент признать это — у нас проблемы с промисами.

Нет, не с самими промисами. Их реализация по спецификации A+ превосходна. Основная проблема, которая сама предстала передо мной за годы наблюдений за тем, как многие программисты борются с богатыми на промисы API, заключается в следующем:

— Многие из нас используют промисы без действительного их понимания.

Если вы мне не верите, решите такую задачку:

Вопрос: В чем разница между этими четырьмя вариантами использования промисов?

doSomething().then(function () {
  return doSomethingElse();
});

doSomething().then(function () {
  doSomethingElse();
});

doSomething().then(doSomethingElse());

doSomething().then(doSomethingElse);

Узнайте решение задачи

50+ полезных ресурсов для самообучения

Reading time6 min
Views125K
learning

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

Оформление социальных кнопок в три шага

Reading time2 min
Views12K


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

Сегодня небольшим, но полезным туториалом с нами поделится Дмитрий Кабаков, Senior фронтенд-разработчик DataArt.

В современном «гугломире» все большую важность набирает социальная составляющая сайта. Но обычные социальные виджеты/коды не всегда почти никогда не вписываются в оформление сайта.

Что же делать? Нужно оформлять!

Для туториала вам понадобится:
  • jQuery-плагин sharrre;
  • иконки FontAwesome;
  • знания HTML/CSS3;
  • минут 10 вашего времени
Читать дальше →

Использование ES6 в AngularJs 1.x со сборкой Browserify+Babel

Reading time5 min
Views29K
В статье рассмотрим как написать на ES6 составляющие части AngularJs приложения, затем собрать с помощью Browserify и Babel на основе небольшого приложения, которое вы можете скачать с github и поиграться.
Читать дальше →

Сетевой аудио-плеер: HiFi недорого

Reading time4 min
Views54K

Меня уже давно мучила идея использовать что-то из продукции Hardkernel для создания сетевого аудио-плеера. Типа такого, только подешевле. Останавливало отсутствие вменяемого аудио-интерфейса, а связываться с USB-DAC не хотелось. И вот на Geektimes появилась новость выпуске нового одноплатного компьютера с интерфейсом I2S и платы с аудиофильским DAC для него. Мечта начала сбываться!
Читать дальше →

Социальный логин: cильные стороны

Reading time9 min
Views15K


Cоциальный логин (логин с использованием аккаунта Google+, Facebook и т.п.) все чаще встречается в мобильных и веб-приложениях. Не удивительно, это удобно. Пользователю не приходится возиться с логином и паролем. Не нужно ничего запоминать, затем вспоминать или восстанавливать. Не приходится разгадывать капчу. На мобильных устройствах ввод пароля крайне не желателен и формирует негативный опыт у пользователя. Владелец приложения получает свои плюсы: простая регистрация — большее количество пользователей, довольные пользователи — выше показатели конверсии. Наличие профиля пользователя уже на этапе регистрации, и как правило, много более достоверного и полного нежели формы запрашиваемые приложением.

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

Решают ли библиотеки все задачи?
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity