Обновить
1059.83

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Web PUSH Notifications быстро и просто

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

Добрый день. В этой небольшой заметке я хочу рассказать как быстро и просто настроить push-уведомления на вашем сайте. Эта статья ни в коем случае не претендует на звание исчерпывающего руководства, но, я надеюсь, что она даст точку старта для дальнейшего изучения.


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


Web PUSH Notifications


Я думаю, вы уже знаете что такое push-уведомления, но я всё же напишу коротко о главном.


Пользователь, заходя на сайт, вытягивает (pull) с него данные. Это удобно и безопасно, но с развитием интернет ресурсов, появилась необходимость оперативно доставлять информацию пользователям не дожидаясь пока те сами сделают запрос. Так и появилась технология принудительной доставки (push) данных с сервера клиенту.

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

Pygest #5. Релизы, статьи, интересные проекты из мира Python [28 февраля 2017 — 13 марта 2017]

Время на прочтение2 мин
Количество просмотров10K
image Всем привет! Это уже пятый выпуск дайджеста на Хабрахабр о новостях из мира Python. В сегодняшнем выпуске вы найдёте интересные материалы, касающиеся машинного обучения, особенностей работы Python, инструментов (Docker, Celery и тд), тестирования и многого другого. Присылайте свои актуальные материалы, а также любые замечания и предложения, которые будут добавлены в ближайший дайджест.

А теперь к делу!
Перейти к дайджесту

Моделирование электрической цепи

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

В данной публикации представлена инструкция по моделированию электрической цепи методом переменных состояния.
Читать дальше →

Советы начинающему скалисту

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

Часть 1. Функциональная


Эта статья (если быть до конца честным — набор заметок) посвящена ошибкам, которые совершают новички, ступая на путь Scala: не только джуниоры, но и умудренные опытом программисты с сединами в бороде. Многие из них до этого всегда работали лишь с императивными языками такими как C, C++ или Java, поэтому идиомы Scala оказываются для них непонятными и, более того, неочевидными. Поэтому я взял на себя смелость предостеречь новообращённых и рассказать им об их типичных ошибках — как совсем невинных, так и тех, что в мире Scala караются смертью.

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

Мемы и шутки из архивов ЦРУ

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

В ЦРУ правильно понимают набор практик DevOps

В опубликованных документах ЦРУ много сугубо технической информации для программистов. Как работать с Git, как скрыть характерные метки в коде, применять шифрование, использовать вредоносные компоненты из других программ. В архиве есть подсказки с «горячими клавишами» vi/vim, справочный курс Git Immersion. Технические рекомендации ЦРУ в ближайшее время следует внимательно проанализировать, тем более что скоро опубликуют вторую порцию документов. Джулиан Ассанж сказал, что в первый архив на ≈600 МБ (Year Zero) — это всего лишь 1% полученных от информатора документов.

Но уже сейчас ясно одно. Разработчики эксплойтов из подразделения Engineering Development Group (EDG) — такие же простые парни, как все. Они тоже отпускают программистские шуточки и обмениваются мемами, вирусными картинками с текстом, анимированными «гифками», с отсылками к поп-культуре, аниме и компьютерным играм. Пусть это и не самая ценная часть архива, но она там есть.
Читать дальше →

Разработка механики игры Bounce от Nokia на JavaScript

Время на прочтение6 мин
Количество просмотров18K
Давно уже не писал для хабра, сегодня хотелось бы порассуждать на тему того, как организовать простейшую механику уровней для игры Bounce на тот случай, если кто-то пожелает сделать что-то похожее и будут вопросы. Думаю, особых вступлений не требуется, поэтому начнем!

image

Ищем спикеров на Go meetup 14 апреля

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


Наше внутреннее сообщество Go-разработчиков в Mail.Ru Group активно развивается, коллеги регулярно встречаются для обмена опытом и полезными ресурсами. Мы знаем, как важно общаться с людьми из других команд и проектов, иметь возможность спросить совета, обсуждать только что появившиеся технологии и поделиться опытом. Около полугода назад в нашем офисе уже проходила встреча разработчиков на Go, и сейчас этот язык все еще вызывает большой интерес. Поэтому 14 апреля мы организуем очередной Go meetup. Приглашаем спикеров! От Mail.Ru Group уже заявлен один доклад. Подробности под катом.
Читать дальше →

Видеозаписи: февральский TechLeads-митап в офисе Badoo

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

enter image description here


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

Расширения Intel Software Guard Extensions, учебное руководство. Часть 6, две ветви кода

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


В шестой части серии учебных материалов, посвященных расширениям Intel Software Guard Extensions (Intel SGX), мы временно откладываем анклав в сторону, чтобы заняться выполнением другого требования, которое мы изложили во второй части (проект приложения): мы посвятим эту серию поддержке двух ветвей кода. Нужно, чтобы наше приложение Tutorial Password Manager работало на ПК как с поддержкой Intel SGX, так и без нее. Большая часть содержимого этого материала взята из статьи Правильное обнаружение расширений Intel Software Guard Extensions в приложениях.

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

Предварительная программа DUMP готова. Выступят докладчики из Dropbox, JetBrains, Mozilla, Mail.Ru, Яндекса, Rambler&Co

Время на прочтение10 мин
Количество просмотров7.7K
Привет, Хабр!

14 апреля в Екатеринбурге в седьмой раз пройдёт конференция DUMP. Доклады будут идти в 8 секциях: FrontTalks, Serverside, Mobile, Design, DevOps, Тестирование, Management, Science.

Программа получается отличной: Григорий Бакунов (Яндекс), Леонид Васильев (Dropbox), Никита Прокопов (Cognician), Андрей Акиньшин (JetBrains), Александр Блинов (RedMadRobot), Юрий Ветров (Mail.Ru Group), Денис Кортунов (Acronis), Сергей Рассказов (Школа шрифтового дизайна), Александр Орлов (Стратоплан) — считаем, такое нельзя пропускать. Подробности программы — под катом.

image
Помните эти наклейки? В прошлом году мы придумали их специально для конференции. А еще есть такие же стикеры для телеграма
Читать дальше →

Как делать больше, уставая меньше. Emacs pomidor

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

Вступление


С возрастом моя работоспособность не становится выше. Теперь я не могу сидеть по 6 часов не вставая: спина, шея, глаза — все это начинает рано или поздно болеть.


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

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

Speech AI с Python & Google API

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

Speech AI с Python & Google API


image


Добрый день!


Совсем недавно пришла в голову идея сделать "говорилку" на русском языке. В голове была простенькая схема наподобие:


1) Распознать речь с микрофона
2) Придумать более — менее разумный ответ.
В этом пункте можно сделать много интересного.
Например реализовать управление чем — нибудь физическим и не очень.
3) Преобразовать этот самый ответ в речь и воспроизвести.


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


В итоге получилась связка, практически не зависящая от выбранного в качестве разговорного языка.

Cкринкастинг на сайте по WebRTC из браузера Chrome

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

Cкринкастинг в Chrome


Cкринкастинг (демонстрация экрана, скриншаринг) уже работает в браузере Google Chrome и позволяет захватывать как окно самого браузера, так и окно любого другого приложения. Например можно захватить Firefox, запущенный в соседнем окне.

Все бы замечательно, но есть проблема с безопасностью. В браузере Chrome скринкастинг выключен.

Для его включения необходимо воспользоваться Chrome Desktop Capture API и мы покажем в этой статье как это сделать.

Расширение для скринкастинга


Чтобы скринкастинг заработал, юзер должен установить ваше расширение (Chrome Extension), которое создано специально для вашего сайта (домена).
Читать дальше →

Ближайшие события

GitHub Pages для сайта на 8 марта

Время на прочтение8 мин
Количество просмотров34K
Что такое HTML, CSS, JavaScript и Bootstrap фреймворк сложно объяснять человеку который далек от IT. А что если нужен сайт на бесплатном хостинге, без привязки к онлайн конструкту именно этого хостинга?!



Как думаете, реально научить девушку обновлять свой сайт на GitHub Pages к Международному женскому дню?! Расскажу как мне это удалось с помощью генератора сайта, который доступен на Github и написан на Java + FreeMarker, к тому же старался автоматизировать публикацию контента в git репозитарий.

Как вернуться в кодеры, когда за сорок

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

Сколько раз рассказывал коллегам и на собеседованиях. Видимо есть спрос и на Хабре. Кто-то встал перед выбором. Другой сомневается в правильности намеченного пути. Когда выгораешь, такое случается. Кому-то интересно, с чем предстоит столкнуться впереди, или сопоставить своё подобное. Поверьте, это короткая версия объёмной тоскливой истории.

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

Запуск WebRTC медиасервера в облаке Amazon EC2 для Live видеотрансляций из браузеров и мобильных приложений

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

AWS Marketplace


Прежде всего хотелось бы сказать несколько слов о маркете Amazon AWS Marketplace. В отличии от Google Play и App Store, где выкладываются мобильные приложения, на AWS разработчики выкладывают серверные приложения. Здесь можно найти много интересного, начиная от бесплатного стека LAMP и заканчивая серверными Enterprise-решениями вроде SAP.

Прелесть работы с маркетом кроется в быстроте и удобстве развертывания. Требуемый сервер приложений, как правило, уже настроен, оптимально сконфигурирован и будет запущен во время запуска самого EC2 инстанса (виртуального сервера Amazon EC2). Запуск инстанса происходит из веб-интерфейса и не требует каких-то дополнительных админских знаний и умений.
Читать дальше →

Красиво «взламываем» ООП с помощью C++14

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

Вступление


Недавно при работе над проектом учебной практики возникла потребность из своего кода порождать произвольный процесс и одновременно читать его stdout и stderr. Так как приложение пишется исключительно для linux, я решил заодно разобраться с epoll. Для запуска процесса на просторах интернета была найдена маленькая библиотека, делающая как раз то, что нужно, да еще и оборачивающая ввод-вывод в привычные потоки из стандартной библиотеки (речь о <iostream>).


Вооружившись несколькими статьями про epoll, я уже было собирался писать код, если бы не одно «но» — для epoll нужен доступ к «сырым» файловым дескрипторам, а автор библиотеки не предоставляет public-доступа к ним. Методы класса, возвращающие дескрипторы, скрыты под грифом «protected».

Что делать?


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

Поэтому в голову пришла безумная третья мысль: почему бы не попытаться как-то красиво «взломать» ООП и «легально» получить доступ к protected-методу без вмешательства в исходный код библиотеки? О том, какие преграды возникли на этом пути и как помог C++14 в их преодолении, и пойдет рассказ в данной публикации.
Читать дальше →

Что общего между Uber, Volkswagen и Zenefits? Все они использовали скрытый код, чтобы обойти закон

Время на прочтение4 мин
Количество просмотров6.9K
«Ни один этически подготовленный разработчик программного обеспечения никогда не согласился бы написать процедуру DestroyBaghdad. Элементарная профессиональная этика вместо этого потребовала бы, чтобы он написал процедуру DestroyCity, к которой Baghdad был бы задан в качестве параметра» — Натаниэль Боренштейн.



Uber использовал программное обеспечение для незаконной работы в сотнях городов
Два часа назад «The New York Times» поведал миру грандиозную историю о скандале, связанном с Uber. С 2013 года Uber использовал изощренный инструмент для обмана местных правоохранительных органов.
Читать дальше →

Что нового в подходах к автоматизированному тестированию? Выясняем 15 марта в Питере

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


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

Зачем нужен Refresh Token, если есть Access Token?

Время на прочтение4 мин
Количество просмотров271K
Недавно мы в Voximplant улучшали авторизацию в SDK. Посмотрев на результаты, я несколько опечалился, что вместо простого и понятного токена их стало две штуки: access token и refresh token. Которые мало того что надо регулярно обновлять, так еще документировать и объяснять в обучающих материалах. Помня, что в OAuth два токена нужны в основном из-за разных сервисов, на которых они используются (даже вопрос на stackoverflow есть), а у нас такой сервис один, я несколько офигел и пошел на второй этаж вытрясать души из разработчиков. Ответ получился неожиданным. Его нет на stackoverflow. Зато он есть под катом.
Читать дальше →

Вклад авторов