• Создание одностраничного ajax-приложения с поддержкой History API (и без нее)

      Судя по комментариям в этой статье, создание веб-приложений с возможностью аякс-навигации является интересной для сообщества темой и пока еще немногие сталкивались с подобной задачей. Я расскажу о ее решении с помощью небольшой библиотеки под названием jQuery-Pjax (либо моего форка ее).

      Моя мотивация: в проекте нужно было реализовать mp3-плеер, играющий независимо от навигации на сайте. Далее потребовалось добавить поддержку браузеров без pushState — и я сделал форк библиотеки.

      Основные особенности

      • навигация по сайту и обработка форм без полной перезагрузки страниц
      • чистые url, доступные для прямого доступа
      • поддержка #!/hash для устаревших браузеров (добавлено в моей версии)
      • работа с кнопками «назад» и вперед» для современных браузеров
      • а теперь и для старых — благодаря benalman.com/projects/jquery-hashchange-plugin
      • похоже, есть проблемы с ИЕ7 (спасибо Nc_Soft) (тем более, большое спасибо за участие Nc_Soft) и, возможно, opera 11.5 (пока не могу подтвердить, но нахожу крайне удивительным из-за dev.opera.com/articles/view/introducing-the-html5-history-api) — сообщение artishok — проверено и работает на сборке 1074 (not_ice)
      • imsamurai (https://github.com/imsamurai) предложил улучшения библиотеки (и я радостью слил изменения): встроенная функция для отправки форм, улучшения работы с хешами и более развитая система триггеров. (у imsamurai, к сожалению, нет аккаунта на хабре — будем рады помощи)

      Ссылки


      Принцип работы Pjax

      Читать дальше →
    • Попытка номер раз создать почти идеальный htaccess

      • Tutorial
          - Google выше ранжирует сайты, которые загружаются быстрее.
          - Если на eBay или Amazone увеличить время загрузки страниц на 9% они теряют 1% прибыли.
          - Сделать свой сайт быстрее, чтобы сэкономить на клиентском трафике и на числе обращений к серверу.


      .htaccess — наш герой


      Профессионалы знают, что такое htaccess.
      Тем кто собираются уйти с народ.ру на php-хостинг только предстоит узнать, что это такое.
      Те кто только что установил свои первые jooml'у или wordpress срочно должны узнать о нашем герое — htaccess

      Зачем нам .htaccess ?


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

      Или другой пример. Скажем ваш ресурс начинает набирать популярность, но переезжать на выделенный сервер ещё рано, а мощностей VPS уже не хватает. Вас очень может выручить htaccess.

      А ещё htaccess может решить некоторые вопросы с безопасностью вашего сайта.

      А ещё…

      Полезные советы по htaccess с разжевыванием для новичков
    • Оптимизируем производительность JavaScript для V8

      • Перевод
      • Tutorial

      Предисловие


      Дэниел Клиффорд сделал на Google I/O прекрасный доклад, посвященный особенностям оптимизации кода JavaSсript для движка V8. Дэниел призвал нас стремиться к большей скорости, тщательно анализировать отличия между С++ и JavaScript, и писать код, помня о том, как работает интерпретатор. Я собрал в этой статье резюме самых главных моментов выступления Дэниела, и буду обновлять её по мере того, как движок будет меняться.
      Читать дальше →
    • Решение проблемы оперативного ресайза изображений

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

        1. В теге изображения указываем другие размеры:
        <img src='/path/to/image.jpg' width: 100px height:150px>
        Очевидно, что в этом случае грузится слишком много не нужного трафика. Не у всех же скоростной интернет, да и глупо это как-то.
        Читать дальше →
      • Загрузка файлов через FileReader

        Зачем я сделал ещё один велосипед?


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

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

        На Хабре нашлись...
      • Понимание ООП в JavaScript [Часть 1]

        • Перевод
        • Tutorial
        — Прототипное наследование — это прекрасно
        JavaScript — это объектно-ориентированный (ОО) язык, уходящий корнями в язык Self, несмотря на то, что внешне он выглядит как Java. Это обстоятельство делает язык действительно мощным благодаря некоторым приятным особенностям.

        Одна из таких особенностей — это реализация прототипного наследования. Этот простой концепт является гибким и мощным. Он позволяет сделать наследование и поведение сущностями первого класса, также как и функции являются объектами первого класса в функциональных языках (включая JavaScript).

        К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).
        Читать дальше →
      • Какая команда в консоли отнимает у вас больше всего времени?

          У меня — 'cd'.

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

          Но должны же быть решения!



          В моей любимой оболочке zsh есть такая возможность — «разворачивание» путей по нажатию : например, "/u/in/sy" -> "/usr/include/sys/"

          В остальных оболочках можно приноровиться и использовать $CDPATH или pushd/popd, но лично мне это до сих пор кажется неудобным.

          А еще есть пара утилиток для ускоренной навигации. Самая известная из них, пожалуй, autojump. Она следит в каких папках пользователь проводит больше всего времени и позволяет указывать только фрагмент пути к папке. Например "incl" приведет вас в "/usr/include", если вы там часто бываете.

          Autojump вдохновила другого разработчика на создание утилиты "z". "Z" использует в качестве критерия для перехода т.н. "frecency" - комбинацию частоты посещений папки (frequency) и времени последнего перехода туда (recency).

          Обе утилиты хороши по-своему, и я так бы и пользовался autojump или z, однако что-то мне не давало покоя. А недавно я услышал одну фразу:

          If the product is used as a tool, its interface should be as unintelligent as
          possible. Stupid is predictable; predictable is learnable; learnable is usable.


          И тут я понял что самое время придумать свой велосипед. Не-intelligent. Тупой и удобный.
          Читать дальше →
        • Азбука NoSQL-инъекций

            Бывают SQL-инъекции! А возможны ли NoSQL-инъекции? Да! Redis, MongoDB, memcached — все эти программные продукты относятся к классу нереляционных СУБД, противоположному популярным MySQL, Oracle Database и MSSQL. Так как интерес к перечисленным базам данных в последнее время значительно возрос, хакеры всех мастей просто не могли пройти мимо них.


            Читать дальше →
          • Выводим деньги с PayPal на карту: Инструкция для чайников

            • Tutorial
            Потребовалось мне вывести деньги с PayPal в России, только вот через посредников работать не хотелось.
            Пришлось получить карту Payoneer для вывода PayPal на эту карту. Сколько не искал, так и не нашел полноценной, пошаговой инструкции.
            Поэтому пишу сам.



            ВНИМАНИЕ! Все ниженаписанное является де-юре нарушением законодательства РФ и Украины, и вообще выдумкой автора и плодом работы в фотошопе. Применяя описанное на практике, вы действуете на свой страх и риск, и ни автор, на администрация сайта не несет ответственности за ваши действия.
            Читать дальше →
          • Краткое описание моделей из курса Model Thinking на Coursera

              Весной этого года на великолепном образовательном ресурсе был запущен курс «Модельное мышление». Автор курса, Скотт Пейдж, затронул в нём довольно много разнообразных моделей, которые используются в большом количестве областей и в повседневной деятельности. Несмотря на то, что курс поставлен в рамках «экономического» направления на Coursera, он будет интересен многим специалистам и инженерам в области ИТ, поскольку моделирование — один из методов в рамках системного подхода, а системный подход — наше всё. Так что если кто-то ещё не изучал этот курс — рекомендую. Как раз его вторая инкарнация начнётся в сентябре (если уже не запущена).

              Сам курс выглядит вводным, многие модели в нём рассматриваются достаточно поверхностно. Даже мне показалось, что сам Скотт Пейдж некоторые формализмы, которые описывает, понимает не до конца (доподлинно могу сказать об этом относительно функции Ляпунова — достаточно посмотреть соответствующую лекцию). Тем не менее, курс отлично ставит мозги на место, классифицирует и систематизирует те знания, которые есть в голове. Ну и нового тоже добавляет, в этом сомнений нет.

              Я выбрал ровно 50 моделей и других формализмов, которые рассматривались автором курса на протяжении 10 недель. Далее в этой заметке будут представлены краткие описания этих моделей и формализмов. Так что если кому-то интересно, то милости прошу. И я надеюсь, что эта заметка станет хорошим подспорьем тем, кто начнёт изучать этот курс.

              Перейти к описанию моделей
              • +37
              • 17,3k
              • 9
            • Как стать фрилансером

                Формирование виртуальной личности

                Сетевая жизнь ничем не отличается от реальной. Врать или не врать это ваше личное дело. Но несколько простых правил негативно влияющих на ваш заработок стоит запомнить:
                • вам нет 18. Стереотип безответственной школоты ничем не уничтожить
                • вконтакте вас зовут Вася, на бирже Петя, а вебмани будет выдавать, что вы Маша. Мало кто задумывается в самом начале пути о своём виртуальном профиле, а зря, потом уже ничего не изменить. Подумайте не только о достоверности вводимых данных, но и о их «чистоте». Если юзер под вашим ником будет на форуме phpclub-а просить научить его программировать, то будьте готовы к внезапно потерянным клиентам.
                • дайте будущему заказчику максимум информации о себе: телефон, скайп, аська, номера кошельков и счетов.
                • уделите внимание социальным сетям. Ни что так не компрометирует исполнителя, как страничка вконтакте содержащая мат, падонские выражения и т д
                • поставьте себя на место заказчика и проверьте на чистоту и логичность всю эту информацию через поисковые системы
                • старайтесь писать без ошибок и опечаток. Про матершину в общении с заказчиком думаю даже говорить не стоит.

                Привыкайте жить в новую эпоху…
                Читать дальше →
              • Одно предложение, которое делает нас сильнее

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

                  Это шаблон описания сути вашей компании или проекта в одном предложении. Я открыл его для себя во время стажировки в США. Составив его, мы реально становимся сильнее. В последствии мне это помогло выбрать правильный курс, сфокусироваться и расставить приоритеты.
                  Читать дальше →
                  • +138
                  • 91,1k
                  • 51
                • Внедрение Javascript-кода в страницу через Chrome Extension

                  Однажды передо мной встала задача написать расширение для одной браузерной игрушки под Google Chrome.
                  Для расширения необходимо было использовать javascript окружение непосредственно самой страницы. Проблема оказалась в том, что доступ к этому окружению невозможен из Content-скриптов расширения.

                  В результате поисковой работы обнаружилось что удачные решения данной проблемы отсутствуют, поэтому изучив имеющийся материал была создана простенькая система, позволяющая внедрить любой код непосредственно в станицу, без дополнительных мучений в процессе разработки. Далее я представлю простой пример расширения, решающего эту задачу.
                  Читать дальше →
                  • +5
                  • 68,4k
                  • 8
                • Как сделать увлекательный кибер-сериал из окон mIRC, ICQ, и Firefox

                    Многие из Вас наверняка читали в далеком 2007-ом, увлекательную статью пользователя ACiDThe Scene — настоящий андеграунд Интернета, и судя по комментариям, некоторые даже посмотрели указанный в статье сериал The Scene в оригинале. Для тех кто не вкурсе, или забыл, немного информации.

                    Сцена — веб-сериал, созданный Jun Group Entertainment в 2004-2006гг. Первый в своем роде фильме действие которого происходит на экране компьютеров его героев, где мы видим, как они общаются в чате.

                    Герои Сцены — участники вымышленной релиз-группы CPX, распространяющей фильмы-новинки до их официального выхода. Завязка истории начинающаяся с того, что один из основателей группы под давлением обстоятельств продает копию фильма азиатским DVD-пиратам.

                    Недавно я наткнулся на этот сериал на рутрекере, подумав что его перевели с субтитрами или голосом как множество других шоу. Но все оказалось намного интересней: Пользователю под ником ID-Daemon ценой невероятных усилий за полгода, удалось практически вручную отрисовать первую серию. На данный момент полностью русифицировано 12 из 20 серий первого из двух сезонов.

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



                    Под катом ссылки на раздачи, Рецензия, Саундтрек, а также полная история пользователя ID-Daemon связанная с этим сериалом, которой он сопровождает свои релизы, в попытках популяризовать это не стандартное для обычных людей шоу и получить право публикации сериала в разделе Сериалы. На данный момент шоу расположено в ветке Rutracker.org » Разное » Разное » Видео
                    Читать дальше →
                  • Русские субтитры в курсах Coursera

                      Это уже не первая на хабре статья про курсы, предоставляемые командой профессоров Coursera. Были и в целом про ресурс, и про отдельные курсы.
                      Но мне кажется, это настолько замечательная организация, что лишний раз про неё вспомнить не грех.

                      Большой преградой на пути к знаниям является то, что все курсы проводятся на английском языке. И это отталкивает. Я сама не так давно думала, что изучать незнакомый материал на малознакомом языке — это что-то невообразимо тяжёлое. Но ребята из Coursera и этой проблеме придумали решение — студентам предоставлена возможность в довольно удобном сервисе создавать субтитры к лекциям. И на русском, несмотря на не очень большое русскоязычное сообщество, уже тоже появляются.

                      Итак, в этой статье я собираюсь привести список существующих на сегодня субтитров к лекциям курсов Coursera и заодно порекламировать курс по машинному обучению, который как раз заново запустился на этой неделе.
                      Читать дальше →
                    • PuperGrep — логи в браузере в реальном времени

                        Вы не любите смотреть логи в консоли или вам не позволяют их любить, а следить за ходом дел как-то нужно?

                        PuperGrep — просмотрщик логов в браузере, который работает как tail -F, grep и подсвечивает самое интересное в вашем браузере. Или даже на вашем android, iPhone или iPad.

                        Скриншот PuperGrep

                        Возможности и демо
                      • Многопоточный загрузчик файлов на JS (jQuery)

                        Доброго времени суток, коллеги. В этой статье я опишу опыт создание многопоточного загрузчика файлов (с ограниченной нагрузкой на сервер) на JS (jQuery).

                        Совсем недавно у меня появилась задача (опытом решения которой я и хочу с вами поделится): сделать, в админке, возможность выбирать и загружать более одного файла за один раз. Задание вроде тривиальное и не сложное, но в итоге мое решение показалось мне довольно таки интересным, так как не было найдено аналогов.
                        Читать дальше →
                      • Про jQuery и велосипеды — мое дополнение

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

                        Для затравки начнем с простого.
                        Читать дальше →