• PHP. Собеседование в вопросах и ответах

      imageНекто Андрей Шевченко составил, структурировал и выпустил в виде бесплатной PDF книги список вопросов, которые всенепрменнно могут встретится(и чаще всего встречаются) любому PHP программисту на самом стандартном собеседовании. Более того — каждый вопрос снабжен достаточно подробным ответом.

      Читать дальше →
    • MySQLi раскладываем все по полочкам


      Для кого это статья? Первоочередной целью написания статьи было именно «разложить все по полочкам» для тех, кто уже работал с mysqli, но не вникал глубоко, а быстренько написал свои обертки и забыл про оригинальный синтаксис. Я постарался разъяснить нюансы, с которым столкнулся сам, при переносе данных из большой и очень старой БД, спроектированной человеком, не знающим про нормализации, в новую, с сильно изменившейся структурой.

      Можно ли читать эту статью людям, которые все еще используют старое расширение mysql и только думающие об перехода на PDO или MySqli? Думаю даже нужно.

      Читать дальше →
    • 10 миллионов хитов в день с WordPress на сервере за $15

        Английский разработчик Эван Лейт (Ewan Leith) опубликовал пошаговую инструкцию, как поднять виртуальный микросервер на Amazon, Linode или другом облачном хостинге, который сможет крутить блог WordPress и выдерживать 10 миллионов хитов в сутки (отчёт составлен с помощью Blitz.io), при этом будет стоить всего пятнадцать долларов в месяц.

        Инструкция описывает, как последовательно установить Ubuntu 11.10 (Oneiric), MySQL, PHP с PHP FPM, APC и модулем MySQL, Nginx с конфигурацией для WordPress, ну и сам WordPress. После этого сервер работает ещё довольно медленно, но всё меняет установка W3 Total Cache и Varnish, которые вместе с Nginx способны сотворить настоящее чудо.

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

          Не так давно мы анонсировали «Конкурс на новый дефолтный дизайн LiveStreet CMS». Вчера закончился прием заявок на участие и мы хотим представить хабрапользователям все варианты дизайнов, участвующие в конкурсе. Нам интересно ваше мнение.

          Всего было подано 34 заявки.
          Все картинки кликабельны на оригиналы.

          Вариант 1 (grombzz, Static):



          Вариант 2 (deniart, Yeti):



          Под катом все 34 варианта
        • PTR-запись vs. Mail.ru

            Нежданно-негаданно столкнулся с непробиваемостью саппорта Mail.ru. Оно и понятно, сервис бесплатен, но раз саппорт выведен в отдельную единицу — он должен работать, а не просто изучать фидбек (моё глубокое IMHO, конечно).

            Суть истории


            На прошедшие выходные один их заказчиков оформил хостинг в одной известной московской телекоммуникационной компании. Заодно был зарегистрирован домен, так как хоcтер по совместительству и регистратор тоже. Так удобно заказчику — платить за хостинг с доменом в одну организацию.
            Домен был делегирован и через несколько часов я отправился проверить валидность DNS.
            Всё было в порядке, за исключением того, что PTR-запись осталась для прежнего домена. Такое бывает, когда при удалении аккаунта DNS-администратор «забывает» удалить PTR.
            Читать дальше →
          • Краткий словарь основных терминов стартап комьюнити, или 33 трэнди вордс для паблик интерэкшенз

              image
              Пури́зм (лат. purus — чистый) — преувеличенное стремление к чистоте литературного языка, к изгнанию из него всяких посторонних элементов […], чтобы развитие языка протекало свободно от внешних, случайных влияний и чтобы в наличный состав его не входили чуждые и ненужные ему примеси. wikipedia
              Читать дальше →
            • jQuery File Upload

                Ура! Еще один, свеженький… чем он лучше других?



                а) Новенький! Всегда, кто берется что-то делать, то обычно смотрит: есть ли в этом смысл, и если есть — делает это.
                б) Красивенький! Можно не точить, а ставить из коробки. Основан на Bootstrap'е и иконках Glyphicons
                в) Само собой мультиселект файлов, Drag&drop, прогрессбар и превьюшки фотографий.
                г) Поддержка кросдоменного соединения, докачка и ресайз фоток на стороне клиента.
                д) Готов для любой платформы сервера (PHP, Python, Ruby on Rails, Java, Node.js, и тому подобное.)

                blueimp.github.com/jQuery-File-Upload

                Поддержка браузеров:

                github.com/blueimp/jQuery-File-Upload/wiki/Browser-support

                Читать дальше →
              • Документация jQuery UI на русском

                  В справочнике jquery.page2page.ru появилась документация jQuery UI. Помимо подробного описания каждого плагина, она содержит статьи о фабрике виджетов, с помощью которой можно создавать собственные подобные плагины, правилах темизации (оформления) виджетов UI, собственной системе позиционирования UI, а так же о расширенных анимационных эффектах, доступных при подключении jQuery UI к сайту. Ну и конечно же есть вводная статья с которой можно начать изучение jQuery UI.

                  Кроме этого, обновлена карта функций, в которую были добавлены методы с двух последних обновлений jQuery, а так же все плагины jQuery UI.
                • Интеграция iCloud на примере игры Cut the Rope

                    Привет хабра-житель. Сегодня я хотел бы поведать тебе о своем опыте интеграции iCloud в игру Cut the Rope.

                    На этот пост меня вдохновил отзыв одного пользователя, пришедший на почтовый адрес технической поддержки:
                    «I do not need any help, I just wanted to ask you something… How did you
                    run iCloud Cut the Rope even if it is not a universal application? I
                    alternate with iPhone and iPad without problems, and it is extraordinary.
                    Unfortunately, no other developer does this, it is only with universal
                    applications, so I wonder… you are a magician you or others are not
                    willing to do anything? You are number one for me, thank you for your
                    beautiful game and support it for long. Hello».

                    Не знаю насколько экстраординарно то, что для iPad и iPhone версии приложения используется один игровой прогресс, но сегодня я расскажу как этого добиться. Тем более, что это очень просто. Также я расскажу о некоторых проблемах и их решениях, с которыми мы столкнулись при интеграции.
                    Читать дальше →
                  • Плавный переезд

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

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

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

                      Рассказ рассчитан на подготовленную аудиторию и не является точным пошаговым руководством к действию.

                      Читать дальше →
                    • Анимация спрайтов при помощи CSS, JS и Canvas

                      Всем привет. Пару дней назад совершенно случайно наткнулся в залежах дисков на «Космические рейнджеры 2: Доминаторы». Устанавливать не стал, так как сейчас не хватает времени, чтобы как следует в неё погрузиться. А решил посмотреть, что на диске находится. Посмотрел «Фан-Арт» и там увидел программку для ковыряния ресурсов рейнджеров. Вот и решил посмотреть, из чего же сделаны наши доминаторы. Покликав немного, нашел файлики с анимацией в формате GAI. Начал любоваться той анимацией. Захотел их сохранить в «гифки», но не как не давала та программка сохранить анимацию? Можно либо сохранить текущий кадр, либо все файлы в PNG. Я решил сохранить все кадры, а их было — 150. Картинки все есть, а почему бы не сделать с ними ту же анимацию.
                      Читать дальше →
                    • HOWTO: свой бизнес в США из России

                          Наверняка многие из нас хоть раз думали про себя: «Черт побери, и везет же этим американцам!». Это касается многого, от магазинов с доставкой «только в пределах 48 континентальных штатов» до вполне серьезных контрактов, которые срываются только потому, что потенциальный заказчик в США категорически не желает иметь дело с иностранцами.

                          В этой статье я попробую осветить процесс создания и администрирования американской корпорации для резидента РФ. Наверняка многие из фактов для самих американцев покажутся тривиальными, однако для жителя России все куда сложнее — увы, это данность. Чтоб не сказать — это Родина, сынок. Оговорюсь сразу — я все это проделал более 2 лет назад, так что, некоторые детали могут быть не совсем актуальны. Но вряд ли что-то поменялось принципиально.
                      Читать дальше →
                    • Вышел 2.0.2, скоро слет пользователей и 2.0.3

                        Мы тут дотестировали, собрали бинарные пакеты и выложили версию Sphinx 2.0.2-beta (это такой опен-сорсный поисковой сервер, использующийся на куче вебсайтов), запланировали на середину декабря (революционное изменение!) к выпуску Sphinx 2.0.3-release, а также усердно готовимся к (бесплатному) слету пользователей Сфинкса 04 декабря в Санкт-Петербурге. Зарегистрироваться на слет нужно по ссылке чуть выше, подать крутой доклад через нашу контактную форму, а ряд подробностей про те ~30 новых фичей и планы/сроки по ближайшим релизам и их циклу можно прочитать под катом.
                        Читать дальше →
                      • Пять способов ускорить запросы API Facebook на практике

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

                          За время работы с API Facebook я накопил несколько рецептов оптимизации запросов: как увеличить скорость работы скриптов, уменьшить их количество и ресурсоёмкость.



                          Способы, изложенные в этой статье, работают только с API Facebook. Но я не исключаю, что они могут быть применимы и в других сервисах, предоставляющих API.
                          Читать дальше →
                        • Userscripts. Кроссдоменные запросы

                          • Tutorial
                          Доброго времени суток.
                          Сегодня мы рассмотрим варианты организации кроссдоменных запросов в юзерскриптах.
                          В подробности реализации того или иного механизма я вдаваться не буду, но приведу пример кроссбраузерной оболочки для кроссдоменных запросов.
                          Приступим
                        • Еще раз про IP-адреса, маски подсетей и вообще

                            Чуточку ликбеза. Навеяно предшествующими копипастами разной чепухи на данную тему. Уж простите, носинг персонал.

                            IP-адрес (v4) состоит из 32-бит. Любой уважающий себя админ, да и вообще айтишник (про сетевых инженеров молчу) должен уметь, будучи разбуженным среди ночи или находясь в состоянии сильного алкогольного опьянения, правильно отвечать на вопрос «из скольки бит состоит IP-адрес». Желательно вообще-то и про IPv6 тоже: 128 бит.

                            Обстоятельство первое. Всего теоретически IPv4-адресов может быть:
                            232 = 210*210*210*22 = 1024*1024*1024*4 ≈ 1000*1000*1000*4 = 4 млрд.
                            Ниже мы увидим, что довольно много из них «съедается» под всякую фигню.


                            Записывают IPv4-адрес, думаю, все знают, как. Четыре октета (то же, что байта, но если вы хотите блеснуть, то говорите «октет» — сразу сойдете за своего) в десятичном представлении без начальных нулей, разделенные точками: «192.168.11.10».

                            В заголовке IP-пакета есть поля source IP и destination IP: адреса источника (кто посылает) и назначения (кому). Как на почтовом конверте. Внутри пакетов у IP-адресов нет никаких масок. Разделителей между октетами тоже нет. Просто 32-бита на адрес назначения и еще 32 на адрес источника.
                            Читать дальше →
                          • Единая авторизация пользователей с поддержкой нескольких сервисов

                              Yii EAuth extension При реализации одного из проектов на Yii framework у меня возникла задача сделать регистрацию и авторизацию пользователей через сторонние сервисы (Google, Facebook, Twitter, etc).

                              У данной задачи есть два пути решения:
                              • Использовать сервис авторизации, например Loginza;
                              • Реализовывать функции авторизации самостоятельно для каждого сервиса.
                              UPDATE: Актуальная версия и инструкция по настройке доступны на github.com. Инструкция в данной статье подходит для EAuth версии <= 1.1.3.
                              Я выбрал второй вариант...
                            • Наиболее эффективные методы раскрутки iPad и iPhone приложений на Apple AppStore (Часть 2)

                                В предыдущей статье, написанной около 2-х месяцев назад мною были описаны некоторые маркетинговые и рекламные методы раскрутки приложений в AppStore, я также обещал написать, как долго наше приложение находилось в ТОП-10 российского апстора, а также какие дополнительные методы раскрутки были применены, итак все по порядку.
                                Читать дальше →