• Создаем платформер за 30 минут

    • Tutorial
    Здравствуйте! Сегодня мы будем писать платформер, используя C++, Box2D и SFML, а также редактор 2D карт для игр Tiled Map Editor.

    image

    Вот результат (карта создавалась 5 минут + во время сьемки игра тормозила + экран не так растянут — дефект Bandicam):



    Исходники и exe — внизу статьи.
    Читать дальше →
  • Первая сертифицированная Android-приставка для скачивания торрентов



      Компания BBK и другие фирмы давно выпускают медиаприставки к телевизору, через которые можно передавать файлы с компьютера на телевизор, принимать IPTV и скачивать торренты. Последняя функция особенно полезна. Приставка остаётся включённой на ночь и скачивает свежие серии фильмов, по заданному списку. После скачивания все эти фильмы сразу доступны для просмотра на телевизоре.

      Функция скачивания торрентов обычно позиционировалась как вторичная, дополнительная, но сегодня BBK выпустила в продажу приставку BitTorrent Box под Android, в которой эта функция — основная. Это первая в мире сертифицированная ТВ-приставка со словом BitTorrent в названии. Посмотрим, как на такую «наглость» отреагируют правообладатели.
      Читать дальше →
    • Стабилизируем PHP на бою — что и почему «роняет» веб-сервер

        Вы отвечаете за стабильность работы веб-проекта на PHP. Нагрузка постоянно растет, добавляются фичи, клиенты довольны. В один прекрасный день начинают появляться загадочные ошибки…

        Ошибки серверного софта


        … которые программисты не знают как исправить, т.к. «ломается» серверный софт, например связка apache-PHP — а клиент получает в ответ на запрос страницу о регламентных работах. Веб-разработчик часто не обладает глубокими знаниями в программировании на C в unix/linux, а сисадмин нередко, к сожалению, глубже bash в систему не погружается. Настоящий хардкор :-)

        Нестабильная работа серверных скриптов


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

        На практике я часто встречаю проекты, которые сталкиваются с подобным классом ошибок «серверного софта», и в команде не всегда знают, что делать. В логе apache часто появляются сообщения о нарушении сегментации (segmentation fault), клиенты получают страницу об ошибке, а веб-разработчик с сисадмином ломают себе голову, играются с разными версиями PHP/apache/прекомпилятора, собирают PHP из исходников с разными опциями снова и снова, пишут о багах, а им доказывают, что это баги не PHP, а их кода и так до бесконечности…

        В статье я хочу рассказать как можно просто и быстро найти причину, почему PHP рассыпался на боевом сервере и устранить ее — не погружаясь в прекрасный мир системного программирования на C для unix :-) От вас потребуется желание и одна чашечка кофе.

        Читать дальше →
      • Электронные деньги. Без купюр

          Нам в Эльбе довольно часто задают вопросы по типу «Я „упрощёнщик“, у меня есть электронный кошелёк в Яндекс.Деньгах, как его в доходах-расходах учитывать и перед налоговой отчитаться?».

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

          Читать дальше →
        • MySQL. Выбор случайных строк в один запрос

          Что имеем?


          Есть слабенький ноутбук, таблица на несколько миллионов строк и нужно выбирать разное количество случайных строк в одном запросе. Дальнейшие выборки нас не интересуют.

          Таблица(test) имеет следующую структуру:
          • — pk_id ( первичный ключ )
          • — id ( поле заполненное разными числами )
          • — value ( поле заполненной с помощью rand() )

          Первичный ключ не имеет дыр и начинается с 1.
          Читать дальше →
        • Массовая остановка запросов

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

          Иногда, в очереди скапливается большое количество запросов к БД, выполнение которых необходимо остановить, не перезапуская MySQL.

          Для решения этой проблемы мы используем такой метод:

          Получаем список долго выполняемых запросов, в данном случае — SELECTы, выполняемые дольше 100 секунд
          SELECT CONCAT('KILL ', id, ';') 
          FROM information_schema.processlist 
          WHERE 
          `info` LIKE('SELECT%') 
          AND `time` > 100 
          INTO OUTFILE '/tmp/killList.sql'; 
          


          Собственно, убиваем их:
          SOURCE /tmp/killList.sql; 
          


          По желанию, можно выбирать запросы по хосту, имени пользователя, базе данных, и т.д.
          • +22
          • 10.4k
          • 9
        • Установка для «чайников»: nginx + php-cgi + mysql + eaccelerator + memcache на Debian 5.0 «lenny»

            Данная заметка является шпаргалкой для новичков в установке нормально работающего комплекса, описанного в заголовке. Все пункты установки протестированы несколько раз на разных vds, поэтому проблем с нехваткой чего-то быть не должно, как это обычно бывает, когда ставишь что-то по мануалам, надерганных из разных источников. Подробно описания настроек и «тюнинга» в заметке нет, т.к. это всё очень индивидуально и требует понимания что, как и зачем делается, а это невозможно охватить в одной даже очень большой шпоре.
            Читать дальше →
          • Установка nginx + php-fpm + memcache + eaccelerator на FreeBSD

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

              Началось всё с того, что я ушёл от firstvds, где уже ничто не спасёт от тормозов. Ушел на ганди.нет, взял одну шару (1 share), которую дали на месяц бесплатно. Кстати, акция эта (This summer, your server is free!) вроде еще не закончилась. ;) И начал на этой шаре проводить зверские эксперименты с установкой разного ПО. Тестировал результаты с помощью siege.

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

              Поехали!
            • Практика работы «в белую» с иностранными заказчиками

                Итак, тут уже была серия статей про то как открыть ИП, как вести бизнес с иностранцами и так далее.
                Я хочу всё систематизировать и поделиться реальной практикой.

                Для начала введём определения и ограничения:
                1. вы уже должны быть зарегистрированы как ИП и вы ознакомились со статьями: habrahabr.ru/blogs/freelance/132232, habrahabr.ru/blogs/freelance/132360, habrahabr.ru/blogs/Dura_Lex/114069
                2. мы хотим вести бизнес честно, платить с этого налог и делаем это в России;
                3. всё что написано ниже в статье применимо только к ИП, возможно что-то применимо и к ООО, но я ИП и рассказываю про ИП;
                4. ИП рассматривается на упрощённой системе налогообложения (УСН) со схемой уплаты налогов в 6% от дохода и без наёмных работников – то есть вы сами по себе;
                5. вы предоставляете услуги в области ИТ (программинг, дизайн, консультации и т. п.).

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