• Виджет для комментариев «В Контакте»: багрепорт

      Хочу поделиться сказом о том, как мы у себя на сайте внедряли виджет для комментариев «В Контакте» и что из этого вышло. Сразу скажу, что мое уважение к разработчикам этого виджета упало весьма и весьма низко, почти пробив уровень плинтуса – в день программиста это будет весьма символично.

      Update: Друзья, больше спасибо всем за участие — еще вчера в виджете были исправлены основные ошибки; думаю, что это исключительно благодаря публикации здесь.

      В моих глазах Хабр еще раз подтвердил свою репутацию IT-ресурса №1, надеюсь, что и в ваших тоже. Еще раз спасибо всем поддержавшим, а также разработчикам виджета!

      Но обо всем по порядку.
      Читать дальше →
    • Fake — полноценное тестирование веб-приложений

        Fake
        Буквально вчера на свет появилась первая версия удивительного проекта, о котором я хочу вам рассказать. Называется он несколько неприглядно — Fake.
        Если коротко, то Fake — это основанный на WebKit и AppleScript браузер, предназначенный для автоматизированного тестирования веб-приложений. Наверняка те из вас, кто еще не познал прелести автоматизированного тестирования, помнят, как отлаживали какую-нибудь сложную форму регистрации и, отлавливая особо хитрый баг, приходилось кучу раз перезагружать страницу и раз за разом заполнять форму. И даже те, кто уже пишет тесты, не могут быть уверены, что JavaScript и Ajax работают как надо и все равно вынуждены тестировать сайт вручную загружая странички, снова и снова.
        Что же делать?
      • X-Jumper: новый паззло-платформер

          image
          X-Jumper — это весьма сложный, но увлекательный инди-платформер от отечественного разработчика Platinum Arcade. Игра обладает рядом уникальных игровых элементов. Смотрите трейлер внутри новости, чтоб ознакомится с геймплеем более наглядно.

          В игре на данный момент 12 уровней, динамичный геймплей, есть редактор карт.
          Читать дальше →
        • Оптимизация Javascript с помощью Google Closure Compiler

            image
            Google открыла исходные коды нескольких инструментов, которые использовались их сотрудниками при разработке таких проектов как Google Docs, Google Maps и GMail.

            В числе этих инструментов имеется достаточно интересная штука, называемая Google Closure Compiler. Данная утилита минимизирует и оптимизирует javascript-код, за счет чего он начинает работать и загружаться быстрее.
            Читать дальше →
          • TOP-10 Flash-игр

              Сегодня уже можно :)



              1. Robokill. Вы управляете роботом, который перемещается по локациям и убивает противников. В процессе игры Вы зарабатываете деньги и можете усовершенствовать своего робота, покупая ему новое оружие, боеприпасы и т.д. Всего 10 затягивающих миссий.
              Оф. сайт (триальная версия): www.rocksolidarcade.com/games/robokill Полная версия: robokill.hotbox.ru
              Читать дальше →
            • Подробное описание новинок в iPhone OS 3.0

                Да, мне известно, что пост уже есть, но я написал несколько более подробное резюме.

                Кроме того, как истинному ябломану, мне есть что сказать из религиозного :)

                Итак: описание новых возможностей для потребителей и для разработчиков далее!
                Читать дальше →
              • Печатаем по сети на любом Windows-принтере

                  Если у вас есть принтер, подключенный к Windows машине, то настроить его для сетевой печати на Mac достаточно просто, даже если драйверов для OSX для этого принтера не существует.

                  Для этого нужны три вещи:
                  • Принтер, исправно работающий на Windows машине
                  • Ghostscript — эмулятор PostScript принтера
                  • RedMon — Redirection Port Monitor
                  Читать дальше →
                  • +5
                  • 98.4k
                  • 8
                • Что нужно знать про арифметику с плавающей запятой



                  В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

                  Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
                  Читать дальше →
                • Git Wizardry

                    1 Введение


                    В своей прошлой заметке я постарался осветить в общих чертах стиль работы с
                    распределенной системой контроля версий git и указать на отличия по сравнению с
                    классическими централизованными СКВ. Целью было прежде всего обобщение опыта
                    работы с системой без упоминания тонкостей синтаксиса отдельных команд.

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

                    Читать дальше →
                  • Underscore.js — библиотека, которая так хороша, что должна быть вне закона

                      Каждый, кому приходилось писать объемные куски осмысленного кода на javascript, рано или поздно понимал, что ему многого не хватает в этом языке или просто неудобны некоторые врожденные конструкции. Для сглаживания шероховатостей применяются jQuery, Prototype, MooTools etc. Кто-то уже мало представляет себе, как можно кодить без них. Сегодня я расскажу о еще одной маааленькой библиотечке, которая делает мир javascript-программиста еще прекраснее. Речь пойдет о Underscore.js
                      Go ahead, make my day
                    • Vim и кириллица: парочка приёмов

                        image

                        Раньше для редактирования обычных русскоязычных текстов, я обычно откладывал Vim в сторонку и прибегал к помощи других редакторов. Причиной этому была парочка очень неприятных косяков:
                        1. На каждый чих приходилось сто раз переключать раскладку, чтобы корректно ввести пару команд и вернуться обратно. Например, замена буквы-опечатки в только что написанном слове, выливалось в: switch → добраться до буквы, нажать r → switch → [нужная буква] → switch → A → [пишем дальше]. Ад!
                        2. Штатный spell checker букву «ё» не любил и любое слово с её участием предлагал заменить на аналог через «е». А я ё люблю, меня это расстраивало.

                        И вот, наконец, я нашёл решение обеим проблемам. Сижу сейчас и набираю этот текст в Vim. Любопытно, что оба барьера обходятся штатными средствами, без дополнительных плагинов. Поскольку материалов на английском и на них основанных куда больше чем исконно русских, найти эту информацию мне было не просто. Поэтому хочу поделиться ей с теми кому интересно.
                        Читать дальше →
                      • ModularGrid — модульная сетка в браузере (и не только сетка)

                          ModularGrid — это небольшая программка на javascript (около 30 КБ), которая облегчает труд HTML-верстальщика.


                          Основные возможности ModularGrid


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

                          подробности
                        • 7 способов определить хостера сайта

                            Периодически перед многими из вебмастеров возникает задача определить хостера, у которого живет тот или иной сайт. Мотивация для этого бывает самая разная, как простое любопытство, так и желание поселиться по соседству на хорошем и стабильном хостинге или наоборот не вляпаться в такое соседство. В этом посте я приведу несколько известных мне методов с их достоинствами и недостатками. Вполне возможно, что он неполон, поэтому дополнения всячески приветствуются.
                            Так же «на берегу» оговорюсь: все упомянутые ниже сайты и хостеры упомянуты исключительно как наглядные примеры, и ни в коем случае не в качестве рекламы или, упаси господи, антирекламы. Выбор оных был сделан так же практически случайно — где какие методы у меня в свое время срабатывали, то и привожу.

                            Способы я перечисляю в порядке убывания точности и, к сожалению, в порядке возрастания вероятности срабатывания.

                            1. NS-сервера


                            Даже странно, что забыл упомянуть с самого начала. Спасибо variable За напоминание. Очень часто люди пользуются NS-серверами хостера и при помощи whois'a мы моментально узнаем хостера.

                            Плюсы

                            • Очень часто срабатывает на шаред-хостингах

                            Минусы

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

                            2. Ошибка 403/404


                            Не могу сказать, что большинство, но немало серьезных хостеров страницы ошибок веб-сервера по умолчанию делают с информацией о себе, а многие их клиенты забывают/ленятся их переопределить. Поэтому в первую очередь стоит попытаться вызвать такую ошибку и посмотреть, что получится. Бывает так, что CMS на сайте при помощи mod_rewrite перехватывает запросы к несуществующим файлам и отдает в ответ свою 404-ю ошибку. Это можно попробовать обойти, вызвав ошибку 403 путем обращения к какталогу без индексного файла. Им может быть папка с картинками/шаблонами, папка для загруженных файлов, кэша движка, системная папка типа includes и т. п. Небольшой хинт — иногда на странице ошибки есть email вебмастера и часто из него можно узнать домен сайта хостера.
                            Читать дальше
                          • Skype и стандартные всплывающие сообщения в Ubuntu

                              Пишу чтобы не забыть, а в дальнейшем использовать, надеюсь кому-нибудь тоже будет полезно. Озадачился заменить скайповские попапы на стандартные убунтовские нотификации, уж больно глаз режут. Есть задача, есть желание её решить. Как оказалось решение достаточно несложное. И так, решение.
                              Читать дальше →
                            • Что почитать по веб-разработке

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

                                Поэтому предлагаю здесь собрать и структурировать такие книги с небольшим описанием, вашим рейтингом и просто пообсуждать их.

                                update: Теперь есть электронные версии книг!

                                Начнём…
                                Читать дальше →
                              • MongoDB или как разлюбить SQL

                                  Введение

                                  Коллеги, при разработке приложений, мы каждый день сталкиваемся с потребностью в гибком хранении информации (обновлении, поиске по ней, и т.д.). Класс продуктов, которые решают этот круг задач, как все мы знаем — Базы данных. Но что это такое в нашем понимании? У многих «база данных» твердо ассоциируется с MySQL, таблицами и SQL-запросами. И это устраивает до определенного момента. Действительно, реляционные базы данных дают массу преимуществ в работе: поскольку данные имеют сильную связанность, не нужно контролировать целостность базы данных. Используя простой под-запрос можно выбрать количество комментариев к каждому посту в блоге. Используя JOIN нетрудно делать сложные связанные выборки и получать данные сразу о нескольких сущностях.
                                  Читать дальше →
                                • Настраиваем Vim под Python

                                    Сегодня я хочу рассказать вам, как я настраивал любимый всеми редактор Vim (который в одном режиме пищит, а в другом — все портит) для написания кода на Python. Статья расчитана на начинающих виммеров.
                                    У меня получилась такая картинка:

                                    Настроить и свой!
                                  • Generating PDF files with PHP and FPDF

                                    • Translation
                                    Большинство web-сервисов экспортируют данные в разных форматах для дальнейшего использования. Данная статья о том, как экспортировать данные в pdf-формате.
                                    Хотя многие знают как это делать, я опишу кратко для тех кто не знает.
                                    Читать дальше →
                                  • Скругленные углы в 3 div-a

                                      Есть много способов делать в верстке скругленные углы. И пока все браузеры поголовно не начнут поддерживать свойство border-radius, надо будет каждый раз думать о том, какой метод использовать в том или ином проекте.

                                      Есть множество разнообразных методов — от использования подложек блоков фиксированных размеров и до создания уголков с помощью vml или svg. В этом топике я не буду рассматривать известные методы, так как информации по данному поводу предостаточно. Я попробовал создать yet another метод.

                                      Сразу оговорюсь — мой метод не панацея, и ему свойственны несколько минусов, которые я опишу подробнее.
                                      Читать дальше →
                                    • Пример использования eAccelerator для нагруженного php-проекта

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

                                        Вот что получилось