• Парсинг YouTube, включая подгружаемые данные, без YouTube API

    Вступление


    Чтобы подгрузить данные контента на ютубе, обычно используют либо Selenium, либо YouTube API. Однако везде есть свои минусы.

    1. Selenium слишком медленный для парсинга. Представьте себе парсинг плейлиста из ~1000 роликов селениумом.
    2. YouTube API, конечно, наилучший вариант, если у вас какое-то свое приложение или проект, но там требуется зарегистрировать приложение и т.д. В «пробной» версии вам нужно постоянно авторизовываться для использования апи, еще там присутствует быстро заканчиваемая квота.
    3. В нашем методе, я бы сказал, очень сложные структуры данных, выдаваемыми ютубом. Особенно нестабильно работает парсинг поиска ютуб.

    Как подгружать данные на ютубе?


    Для этого есть токен, который можно найти в html коде страницы. Потом в дальнейшем его используем, как параметр для запроса к ютубу, выдающему нам новый контент. Сам ютуб прогружает контент с помощью запроса, где как раз используется этот токен.
    Читать дальше →
  • Своё Certificate Authority — в 5 OpenSSL команд

    Зачем это нужно?


    Представим, у нас есть два сервера, работают они себе, и переодически они хотят, что-то друг у друга спросить по протоколу HTTP/HTTPS.

    Протокол HTTP не безопасен и логично использовать протокол HTTPS для общения меду серверами.

    Для организации такого общения нам нужно 2 SSL сертификата.

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

      Много времени прошло с момента появления AngularJs (в масштабах веб-технологий конечно). Сейчас в интернетах есть огромное количество постов восхваляющих этот фреймворк до небес, что это манна небесная не иначе, а критики не так уж и много как он того заслуживает. Но такие статьи уже потихоньку начинают появляться, и меня это радует, надеюсь индустрия переболеет ангуляром так же, как переболела MooTools, Prototype, %какой-нибудь новый язык под JVM%, %другая-супер-революционная-технология%. Не знаю почему, но в IT-области такие революционные технологии, которые поднимают шум, а потом пропадают, появляются довольно часто. Хороший разработчик должен уметь отличать очередную модную технологию, от работающего инструмента. И для этого очень важно критически смотреть на вещи. Моя статья — это компиляция самых весомых выводов из других статей, и моих личных умозаключений. Ангуляр создает хороший вау-эффект, когда видишь его впервые: «ух ты, я написал ng-repeat, и реализовал эту логику одними тегами и все само обновляется!», но как только приходится реализовывать реальные приложения, а не очередной TODO-лист, то все становиться очень печально. Сразу хочу сказать, что фреймворк я знаю хорошо, даже больше чем мне хотелось бы его знать, я программировал на нем в течении 2 лет. И для следующего проекта я его точно не выберу, и это хорошо, все мы учимся на ошибках. Так что же не так с ангуляром? Тут нет однозначного ответа, слишком много разных недостатков, которые создают такой облик фреймворку. Если одним словом – непродуманная архитектура. Под катом я привожу конкретику, так что устраивайтесь поудобнее. ДА НАЧНЕТСЯ ХОЛЛИ ВАР!
      Читать дальше →
    • Minoca OS: новая свободная операционная система



        Двое отважных разработчиков Ивэн Грин и Крис Стивенс решились на смелый шаг. Они написали с нуля совершенно новую операционную систему Minoca OS и опубликовали её исходный код под свободной лицензией GNU GPL v3.

        Это 625 000 строк отлично документированного кода, преимущественно на языке программирования Си, частично на C++ и Ассемблере. Ядро ОС для x86 имеет размер около 750 КБ. С драйверами, сетевым стеком и видеобуфером свежезагруженная система использует 5−7 МБ оперативной памяти.
        Читать дальше →
      • Альтернативы сервису parse.com

        • Translation
        Как известно, в следующем январе сервис Parse будет закрыт. Большинство разработчиков ищут альтернативу для этого сервиса. В одном из проектов guthub собралось достаточно много альтернатив, со ссылками и описанием. Перед вами — перевод этой страницы.

        Часть 1: универсальные сервисы


        Провайдеры, предоставляющие информацию в реальном времени, помечены (*).

        AnyPresence MBaaS (Mobile backend as a service). Упрощает процесс создания мобильных приложений предприятия, работающих на разных устройствах, не ущемляя гибкость средств, доступных разработчику. Легок в использовании даже для неопытных пользователей. Опытные разработчики получают доступ к исходникам всех компонентов.

        ApiOmat позволяет процессам предприятия работать как мобильным приложениям. Мобилизует сложные бизнес-структуры и процессы путём объединения существующих IT-систем с мобильными приложениями и устройствами. Его можно устанавливать прямо в дата-центре компании, что позволит работникам выполнять свою работу через приложения вне зависимости от их местонахождения.

        Appcelerator Arrow (*) Состоит из двух основных компонентов, Builder и Cloud. Arrow Builder позволяет быстро создавать API, модели данных и соединители данных как через мастер настройки, так и через написание кода. Arrow Cloud – это эластичный облачный сервис, где выполняются API и происходит анализ их использования, плюс обеспечивается работа двух десятков смежных сервисов (гео, хранение фотографий и т.п.) с использованием ArrowDB

        Appery.io Интегрированные сервисы MBaaS – чтобы разработчики могли сконцентрироваться на приложениях, не отвлекаясь на инфраструктуру.
        Читать дальше →
      • 300 потрясающих бесплатных сервисов

        • Translation


        Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



        A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

        • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
        • Bootswatch: Бесплатные темы для Bootstrap.
        • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
        • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
        • Strikingly.com Domain: Конструктор веб-сайтов.
        • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
        • Withoomph: Мгновенное создание логотипов (англ.).
        • Hipster Logo Generator: Генератор хипстерских логотипов.
        • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
        • Invoice to me: Бесплатный генератор счета.
        • Free Invoice Generator: Альтернативный бесплатный генератор счета.
        • Slimvoice: Невероятно простой счет.

        Читать дальше →
      • DIYVR: картонный шлем виртуальной реальности с любым смартфоном в качестве дисплея



          Тема виртуальной реальности сейчас находится на гребне популярности, и тенденция к снижению явно не наблюдается. Многие технокорпорации создают собственные версии шлемов виртуальной и дополненной реальности. Существует и такой интересный проект, как DIYVR (DIY Virtual Reality).

          Разработчики ранее собирали средства на свой проект, и к завершению кампании на Kickstarter собрали в два раза больше, чем требуется. В комплекте с очками идут: open-source веб-инструментарий для создания собственной версии ПО для очков и набор для сборки очков (все это крепится к бейсболке, которая также идет в комплекте).

          Читать дальше →
        • Авторское право, свободные лицензии и GPL с нуля

          В этом посте я дам метаинформацию об авторском праве и свободных лицензиях. Т. е. то, что должен знать каждый, кто пишет свободное ПО. Я не буду останавливаться на конкретных примерах таких лицензий, это вы сможете найти где-нибудь ещё в интернете. Также, я немного поговорю о GPL. Сразу скажу, что я не юрист, и мог где-то ошибиться. Весь этот пост применим почти ко всем развитым странам, в том числе к России и Америке (правда, к сожалению, авторизированного перевода GPL на русский язык нет, а потому она недействительна в России). Везде, где я говорю про GPL, я имею в виду GPL третьей версии, хотя почти вся эта информация применима и к GPL 2, и, скорее всего, будет применима к последующим версиям. (Ещё раз скажу: я плохо разбираюсь в теме, см. UPD от 2016-11-10 в конце статьи.)

          Авторское право


          Любой продукт интеллектуального труда автоматически становится объектом авторского права. Всевозможные «Copyright», «All right reserved», «©» и т. д. не обязательны. Регистрация авторского права не нужна, однако, она может пригодиться, чтобы потом доказать, что вы действительно являетесь владельцем авторских прав, например, в суде. Т. е. если вы, например, написали программу, выложили её в интернет, не подписались, не написали «Copyright» и т. д., то вы всё равно являетесь владельцем авторских прав на неё. Но вот далеко не факт, что у вас получится, в случае чего, это доказать.

          Что значит авторское право? Кто-то может подумать, что это право брать денежные отчисления за использование произведения. Да, это так, но авторское право включает в себя не только это. Авторское право — это право устанавливать любые ограничения и условия (т. е., собственно, лицензию) на использование произведения, в том числе право требовать отчисления. Например, какой-нибудь программист может потребовать, чтобы его программу использовали только стоя на одной ноге. И он будет прав. И любой, кто не подчинится этому условию, будет нарушать закон.
          Читать дальше →
        • Что не нужно кодить самостоятельно

            Недавно написал свой велосипед и выложил его на хабре. Вот он: «Простейший Connection pool без DataSource в Java». Статья не из самых удачных, только прошу больше не минусовать. Итак, чтобы не повторять такие ошибки самому и, возможно, предостеречь кого-то от таких ошибок, решил перевести статью «Seven Things You Should Never Code Yourself» достаточно известного в среде open-source деятеля IT-области — Andy Lester'а. Итак, кому интересно, прошу под кат.
            Читать дальше →
          • TOX — Защищенный мессенджер добрался до Альфа версии (Для всех платформ)



              Недавно состоялось очень важное событие в сфере защищенных коммуникаций и мессенджеров — проект Tox.
              Он поставил перед собой задачу заменить Skype и сейчас он добрался до Альфа версии.

              Хочу обратить ваше внимание, альфа версия означает, что более 90% функций работают на всех OS одновременно:
              — Аудио вызовы
              — Видео вызовы
              — Передача файлов
              — TCP Relay
              — DNS Name discovery
              — Групповые чаты
              Читать дальше →
            • Немного тестов производительности сетевых фреймворков

              Привет Хабр! Пару месяцев назад я захотел провести тестирование производительности некоторых сетевых фреймворков, c целью понять насколько большая разбежка между ними. Надо ли использовать Node.js там, где хотелось бы Python с Gevent или нужен Ruby с его EventMachine.

              image

              Я хочу обратить ваше внимание на то, что эти материалы не являются руководством к выбору фреймворка и могут содержать спорные моменты. Я вообще не собирался публиковать результаты этого исследования, но когда они попадались мне на глаза я ловил себя на мысли, что это может быть кому-нибудь полезно. Теперь я начну забрасывать вас графиками.
              Читать дальше →
            • Универсальный web-GUI для произвольных RESTful сервисов

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


              Читать дальше →
            • Шпаргалка по HTTP-библиотекам для С++

              • Tutorial
              К сожалению, в стандартной библиотеке языка С++ нет никаких средств для работы с протоколом HTTP. Возможно, в будущем появятся, но на данный момент каждый раз при необходимости дёрнуть какой-нибудь REST-сервис, пропарсить веб-страничку, написать простенького бота или краулера приходится задаваться вопросами «А какую же библиотеку взять, так чтобы побыстрее и попроще?». Иногда проект уже использует какой-то фреймворк (а иногда даже несколько) и тогда приходится вспоминать «А как же сделать HTTP-запрос имеющимися средствами?». Чтобы не путаться я решил написать для себя шпаргалку с примерами HTTP-запросов на С++ с применением разных библиотек. А самое удобное место для хранения подобных шпаргалок — Хабр: и сам не потеряешь, и другим может пригодиться.

              Будут рассмотрены:
              • WinInet
              • WinHttp
              • Casablanca
              • Qt
              • POCO
              • wxWidgets
              • Boost.Asio
              • libcurl
              • neon
              • .NET (С++/CLI)
              • IXMLHTTPRequest
              • HappyHttp
              • cpp-netlib


              Читать дальше →
            • Создание сетей терминов на основе анализа текстов

                По поручению известного автора Дмитрия Ландэ (например, «Поиск знаний в Internet», Интернетика. Навигация в сложных сетях: модели и алгоритмы) публикую одну из последних его работ.

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


                Немного теории и алгоритм
              • Пишем файловую систему в ядре Linux

                • Tutorial

                Для кого эта статья


                image

                Данная статья составлена по материалам практики по курсу операционных систем в Академическом университете . Материал готовился для студентов, и ничего сложного здесь не будет, достаточно базового знания командной строки, языка C, Makefile и общих теоретических знаний о файловых системах.

                Весь материал разбит на несколько частей, в данной статье будет описана вводная часть. Я коротко расскажу о том, что понадобится для разработки в ядре Linux, затем мы напишем простейший загружаемый модуль ядра, и наконец напишем каркас будущей файловой системы — модуль, который зарегистрирует довольно бесполезную (пока) файловую систему в ядре. Люди уже знакомые (пусть и поверхностно) с разработкой в ядре Linux не найдут здесь ничего интересного.
                Читать дальше →
                • +107
                • 54k
                • 9
              • Пиратство — двигатель прогресса. Научные исследования в области неконтролируемого копирования

                  image

                  После запуска проекта “Время менять копирайт” мы стали получать много различных отзывов и комментариев пользователей по существу предлагаемых нами реформ.

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

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

                  В связи с этим мне хотелось бы немного внести ясность, и убедить всех тех, кто не поддерживает нашу общественную кампанию по реформе авторского права в цифровую эпоху, что мы вовсе не призываем к отмене авторских прав. Очевидно, автор все также должен получать вознаграждение за свой труд, и положения гражданского законодательства должны непременно охранять творчество, как это было выработано юридической наукой за несколько столетий с тех пор, как авторское право впервые появилось как отрасль права.
                  Читать дальше →
                • JUCE — Кроссплатформенный C++ фреймворк для разработки приложений с пользовательским интерфейсом

                  image

                  Приветствую хабросообщество!
                  Наверно каждый кто профессионально разрабатывает ПО или просто увлекается программированием, рано или поздно приходил к необходимости создавать пользовательский интерфейс для своей программы. И если не рассматривать нативные для платформ окружения и языки такие как C# для Windows или Objective-C для Mac OS X которые изначально содержат средства для визуализации интерфейса, то выбор оказывается не очень богатым, особенно если мы не горим желанием платить деньги за средства разработки GUI или желаем добиться кроссплатформенности.
                  В своем первом посте на Хабре я бы хотел рассказать о таком фреймворке как JUCE. Поиск по Хабру выдал всего 2 статьи где данный фреймворк только упоминается, но ни какой детальной информации не приводится. Думаю что тем кто только начинает осваивать кроссплатформенные GUI приложения на C++ будет интересно узнать об альтернативе таким монстрам как Qt или таким старичкам как GTK+
                  Хотите знать больше?
                • Несколько интересностей и полезностей для веб-разработчика #10

                    Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром. Это последняя подборка в этом году и я постарался сделать ее наиболее информативной и нужной.

                    image
                    Летом 2013 года издательство The Guardian обновило свой сайт, согласно всем современным трендам/нормам/правилам. Но самым главным событием является то, что разработчики выложили весь фронтенд сайта в открытый доступ на GitHub. Свыше 1500 старов, 10 000 коммитов и 100 веток. Там целый джентельменский набор. Для многих это будет кладезь знаний.

                    imageCenny.js — plug 'n play бэкенд для веб-приложений. Быстрый, защищенный, расширяемый.
                    var server = new Cenny();
                    server.set({data: [1,2,3]});
                    server.get(function(data){ 
                       console.log(data); 
                    });
                    


                    imageМаленький скрипт от Filament Group (один из первых спонсоров jQuery). Overthrow.js это полифил для отзывчивого дизайна, который стабилизирует работу стандартного скроллинга контента HTML элементов (overflow: auto/scroll) на тач устройствах. Для тех, кто не совсем понял о чем речь, сравните на вашем гаджете работу обычного скроллинга и действие Overthrow.

                    Читать дальше →
                  • Elections OS



                      Компании понадобились ноутбуки. Было решено купить несколько Thinkpad L420 с DOS в качестве предустановленной ОС. Запакованные коробки привезли в офис вчера. После включения, вместо задорного мигания курсора DOSа я увидел это. Беглый поиск подсказал, что перед нами ОС, которая использовалась для видеорегистрации и трансляции выборов он-лайн. В некоторых статьях попались вообще интересные фото.
                      Читать дальше →
                    • Карты для всех, даром

                        Программисты — редкие люди. Мы можем сделать абсолютно всё, но интернет отвечает на это зияющей пустотой, где нужно делать абсолютно всё. Особенно если живёшь в непрофильных сообществах. Запросы со всех сторон, тут нужно подлатать, там плагинчик дописать, и никто, кроме тебя. Эта история — про один из таких пробелов, который я надеялся закрыть за неделю, и та неделя всё продолжается. В программе: дорожное строительство и велосипедисты, сайт для обмена картами лучше яндекса, осмеры без осма, архитектура плагинов в форумных движках и интерактивные карты прямо в хабре.

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