• XSS глазами злоумышленника

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

      Интересно, что в большинстве случаев, где описывается данная уязвимость, нас пугают следующим кодом:

      http://www.site.com/page.php?var=<script>alert('xss');</script>


      Как-то не очень страшно :) Чем же действительно может быть опасной данная уязвимость?
      Читать дальше →
    • Маленькие секреты about: config, ручная настройка



        После прочтения поста о уменьшении расхода оперативной памяти в FF, я решил залезть поглубже в страницу настроек about:config и отыскать там что-нибудь интересное. Забегая вперёд, скажу, что поиски мои увенчались успехом.
        Начну с того, что все изменения вы можете сделать в файле ..\Mozilla Firefox\greprefs\all.js или в папке с настройками вашей конфигурации, хранящимися в C:\Document and Settings\ или ~/.mozilla/firefox в Виндовсе и Линуксе соответственно. Как вы уже заметили, Лис хранит настройки в js, да ещё и для каждой настройки вызывает специальную функцию pref(prefName,value), а сама функция находится в файле ..\Mozilla Firefox\defaults\autoconfig\prefcalls.js! Вот так-то.
        Читать дальше →
      • Медиатека и порядок

          обновлено 17.07.2009 в 11:10

          Здравствуйте, уважаемые Хабралюди.
          Эта статья была в песочнице, дала мне инвайт. Я решил разместить ее в блог.
          Необходимость в порядке своей коллекции музыкальных файлов я видел уже давно.
          Множество непрописанных тегов, кучи неразобранной музыки – все это удручало. Да, к тому же, недавно был приобретен Iphone. А его красивый coverflow без этих самых cover (по совместительству являющихся album art) – ужас некрасивый и непотребный. Если на нокии я как-то с этим уживался – заходил во «все песни» и искал нужную по поиску, то на Iphone сам Джобс велел навести порядок.

          Читать дальше →
        • Правила работы с e-mail в нашей компании

            За четыре года наш коллектив вырос с 3 до 70 человек, появилось три офиса плюс общение со штаб-квартирами. Поэтому по ходу пришлось менять и стиль, и правила работы в компании. В итоге в области коммуникаций это вылилось в следующий свод правил — часть уже можно встретить в литературе по тайм-менеджменту, часть придумали сами. Возможно, это будет полезно и вашей компании. Подходит для компаний, где у всех есть компьютер и e-mail.
            Читать дальше →
          • Дополненная реальность — новый тренд в человеко-компьютерном взаимодействии



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

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

              Неплохой пример использования этой технологии в ecommerce


              Какие перспективы? Возможно ли массовое распространение? Ваше мнение.
            • Linux: Установка программ не входящих в дистрибутив при помощи менеджера xstow

                Введение


                Современные дистрибутивы Linux имеют в своем составе очень много софта. Проблемы с установкой/удалением/обновлением такого софта решены, можно сказать, идеально. Всем занимается менеджер пакетов. Выбрали нужный пакет, менеджер пакетов установит его. Нужно удалить — менеджер пакетов удалит и аккуратно все почистит. Но, иногда хочется, или нужно, установить программное обеспечение, не входящее в дистрибутив, или распространяющееся в исходниках, или даже в бинарниках. Как поступать в таких случаях?
                Читать дальше →
              • Еженедельный чеклист руководителя проекта

                  Вот такой список обнаружил когда-то в одном давно заброшенном блоге англоязычного менеджера проекта. Адрес блога к сожалению давно потерялся, но сами список с небольшими исправлениями оказался очень полезным в работе — еженедельно просматриваю его. Очень помогает приводить мысли и информацию по проекту в порядок.
                  Читать дальше →
                • Memcached — стратегия кеширования

                    Хочу поприветствовать хабросообщество. Из приятных впечатлении при регистрации на Хабре — так это атмосфера сказочности, которая бывает только в старых добрых сказках из советского Кинофильма.
                    Итак, слезы умиления прошли, приступаем. Ниже топик, который привел к инвайту на Хабр.

                    Memcached применяется для кеширования данных. Это делается для того, чтобы избежать лишних обращений к базе данных, т.е. в Memcached сохраняют результаты запросов. Это ускоряет работу сайта и уменьшают время выдачи страниц.
                    Кеш кроме преимуществ имеет свои недостатки. Одна из проблем кеша — это его актуальность. В режиме работы «только чтение» трудностей не возникает. Если же мы имеем дело с данными, которые изменяются, или изменяются часто, то эффективность кеширования резко падает.
                    Читать дальше →
                  • jQuery Tools v1.0.1

                      jQuery Tools Logo
                      jQuery Tools v1.0.1 — это инструмент/библиотека представляет собой файл весом в 5,8 кб включающий в себя наиболее важные компоненты для вебдванольных сайтов, а именно: табы, всплывающие подсказки, плавные переходы, прокрутки, всплывающие окна и т.д.

                      Не буду тянуть резину, лучше, как говориться, один раз увидеть, чем сто раз услышать!
                      Переходим по ссылке и смотрим более 50 (!) демок:

                      Несколько понравившихся мне демонстраций. Очень рекомендую!
                      Маскируем фоновое изображение;
                      AJAX-табы с поддержкой истории переходов;
                      Неколько всплывающих окошек на одной странице.
                    • jQuery для начинающих

                        jQuery Logo

                        jQuery — это замечательный JavaScript Framework, который подкупает своей простотой в понимании и удобством в использовании. Но изучение надо с чего-то начинать, и лично моё мнение — лучше всего начинать с наглядных примеров, и они далее…

                        Читать дальше →
                      • Enlarge your timus now!

                          Привет, %username%.

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

                          На фоне этого безобразия, я нашел для себя способ увеличить продуктивность работы и отодвинуть все дедлайны на срок, в два раза превышающий оставшееся время.
                          Читать дальше →
                        • Datetime или timestamp

                            На днях я столкнулся с тем, что многие разработчики не знают в чём отличие типов данных DATETIME и TIMESTAMP в MySQLе, а так же как хранить дату и время, если необходимо учитывать разные часовые пояса для разных пользователей веб-приложения. Поэтому хочу дать ниже разъяснения с пояснениями.

                            DATETIME
                            Хранит время в виде целого числа вида YYYYMMDDHHMMSS, используя для этого 8 байтов. Это время не зависит от временной зоны. Оно всегда отображается при выборке точно так же, как было сохранено, независимо от того какой часовой пояс установлен в MySQL. Даю пример:
                            Читать дальше →
                          • live: новый способ задать обработчик события

                              imageКак известно, недавно вышла бета версия jQuery 1.3. Пока она сырая, тестируется, и в ней еще есть неприятные баги. Но знакомится с нововведениями стоит и я хотел бы кратко рассказать об одном из них.

                              Функция «live» представляет собой аналог функции bind, по синтаксису и сути они идентичны, но между ними есть одно огромное различие, которое лучше всего демонcтрирует следующий пример.

                              Попробовать демо. Пояснения под катом.

                              Читать дальше →
                            • Закрепляем jQuery — 25 отличных советов

                              • Перевод
                              Перевод отличной статейки. Думаю, будет полезна как новичкам, которые только приступили к использованию jQuery, так и тем, кто уже какое-то время с ним работает. А кого-то, возможно, заставит глянуть эту чудесную библиотечку. Многие советы имеют отношение не только к jQuery, но и к JavaScript в целом. Лично для меня была весьма и весьма познавательной, посему и захотелось донести это «до масс». Перевод не дословный, но передающий смысл и максимально адаптированный к русскому языку.

                              Далее все написано от имени автора оригинальной статьи.

                              Введение


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

                              Я не эксперт в jQuery. И даже не претендую, поэтому, если встретите ошибки, смело поправляйте меня и вносите предложения по улучшению (поправлять и присылать поправки нужно автору статьи, а не перевода — зам. пер.).

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

                              Содержание


                              1. Загружайте фреймворк с Google Code
                              2. Используйте «шпаргалку» (cheat sheet)
                              3. Соединяйте все ваши скрипты и уменьшайте размер файла
                              4. Используйте возможности Firebug для ведения логов
                              5. Минимизируйте операции выборки в пользу кэширования
                              6. Сводите манипуляции с DOM-деревом к минимуму
                              7. Оборачивайте все в единый элемент, когда речь идет о любой вставке в DOM
                              8. Используйте «id» вместо классов, где это возможно
                              9. Задайте контекст своим селекторам
                              10. Используйте последовательности вызовов методов с умом
                              11. Научитесь правильно использовать анимацию
                              12. Научитесь назначать и делегировать события
                              13. Используйте классы для сохранения состояния
                              14. Еще лучше — используйте встроенный в jQuery метод data() для сохранения состояния
                              15. Пишите собственные селекторы
                              16. Подготавливайте HTML и модифицируйте его, когда страница загружена
                              17. Используйте «отложенную загрузку» (lazy loading) для определенного контента для выигрыша в общей скорости и преимуществ для SEO
                              18. Используйте служебные функции jQuery
                              19. Используйте «noconflict» для переименования глобального объекта «jquery», когда используете его с другими фреймворками
                              20. Как узнать что картинки загружены?
                              21. Всегда используйте последнюю версию
                              22. Как проверить, что элемент существует?
                              23. Добавляйте класс «JS» в элемент «html»
                              24. Возвращайте «false» для отмены поведения по-умолчанию
                              25. Короткая запись для события готовности документа


                              Rock'n'Roll!
                            • Про что рассказать?

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

                                О чем интересно было бы почитать?
                                Туториалы для совсем начинающих не предлагать, не смогу.

                                Для затравки, и заодно в порядке спама.
                                Все уже знают, что свежий Сфинкс умеет прикидываться mysql сервером, и соотв-но никакой API не нужен?
                                Все уже знают, что запросы теперь можно писать в виде SELECT * FROM index WHERE MATCH('test')?
                                Все уже знают, как легко и непринуждено делать подсказки и-или автокоррекцию слов?
                                Все уже знают, что наконец появился открытый репозиторий для самых бесстрашных? :)
                              • Что такое анти-паттерны?

                                  Анти-паттерны — полная противоположность паттернам. Если паттерны проектирования —
                                  это примеры практик хорошего программирования, то есть шаблоны решения определённых задач. То анти-паттерны — их полная противоположность, это — шаблоны ошибок, которые совершаются при решении различных задач. Частью практик хорошего программирования является именно избежание анти-паттернов. Не надо думать, что это такая непонятная теоретическая фигня — это конкретные проблемы, с которыми сталкивался практически каждый разработчик. Кто осведомлен, тот и вооружён! Рассмотрим же несколько расрпотранённых анти-паттернов в программировании.
                                  Да, рассмотрим!
                                • Пинарик онлайн

                                    =)
                                    В топике "Личный тайм-менеджмент" McBernar рассказал об интересном приеме для самомотивации — «календарик-пинарик». Это календарь, в котором вы каждый день отмечаете, продуктивно ли вы его провели или нет. Таким образом вы можете наглядно видеть вашу продуктивность, и в следствии чего стараться быть более усердным.
                                    Идея мне очень понравилась, т.к. тема мотивации для меня особо проблемная. Поэтому я решил попробовать завести себе свой календарик. Однако, бумажных блокнотов я с собой не ношу. В результате, за небольшое время я оформил идею в виде сайта. Надеюсь, кому-то он тоже поможет для самомотивации.

                                    Завести себе «пинарик»

                                    UPD: в опере, оказывается, баг при регистрации: не отображается сообщение, что нужно проверить/подтвердить почту. Постараюсь поправить в скором времени.