• Cocos2d-x — Основные понятия

    Предисловие


    Начну с небольшой предыстории. Не так давно, мы с другом решили разработать свою двумерную игру, для дипломного проекта. После того как мы определились с ее жанром и получили примерное представление об игровом процессе, перед нами встал вопрос о выборе движка. Unreal или Unity мы отбросили сразу, так как они показались нам слишком «тяжелыми» инструментами для 2d игры. Cocos2d-x был бы идеальным вариантом, если бы не одна деталь — практически полное отсутствие вводных уроков. Те статьи, что нам удалось найти были, либо не закончены, либо недостаточно подробны. И тогда, я решил перевести официальную документацию, практически без знаний английского и заодно поделится своим переводом с остальными (кто же если не я).

    Эта статья представляет собой почти дословный перевод официальной документации к Cocos2d-x. Если вы не хотите разбираться во всяких тонкостях устройства движка, а хотите сразу начать писать свою игру, могу посоветовать вам эту статью: Cocos2d-x — разработка простой игры .

    Если вы еще не установили Cocos2d-x или не можете создать проект, то тут вы найдете подробную инструкцию: Создание многоплатформенных игр с использованием Cocos2d-x версии 3.0 и выше.

    Оригинальная статья: Cocos2d-x programmers guide.

    P.S.: Не советую клонировать cocos2d-x с gitHub. У меня после клонирования не доставало нескольких важных файлов. Но может быть мне просто не повезло.

    Приступим!
    Читать дальше →
  • Подводные камни в облаках, или проваленный тест онлайн-редакторов на docx-файле

    Не так давно наткнулся на Хабре на статью под заголовком «Как подружить MS Office с Libre Office». Проблема меня зацепила, поскольку навязшее в зубах некорректное открытие файлов из одного редактора в другом уже немного замучило. При всем этом неудобстве, платить за проезд, когда у тебя проездной, смысла я не видел никогда. Поэтому в вопросе — что выбрать — платный редактор или бесплатный, ответ был ясен. Но что делать с docx'ом?



    Читать дальше →
  • 5 практических примеров для изучения фреймворка React

    • Translation
    • Tutorial
    Перевод статьи «5 Practical Examples For Learning The React Framework», Martin Angelov

    Вы вероятно слышали о популярном JavaScript фреймворке от Facebook – React. Он используется на многих популярных веб-сайтах, в том числе в Facebook и Instagram. В этой статье вы увидите 5 практических примеров, построенных при помощи React, которые помогут вам начать работать с этим фреймворком.
    Читать дальше →
  • Работаю за random()

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


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

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



      Ищут работу

      sadgb впишется в несложный проект для iOS.
      Sterhel хочет сделать сайт средней сложности музыкальной группе.
      kievskii готов снять рекламный видеоролик.
      TheHorse дарит до сорока часов чему-нибудь прикладному, алгоритмическому, графическому.
      Artreaspekt рисует иконки за еду.
      gleb_kudr строит организационные структуры и бизнес-процессы.
      stardust_kid сверстает шаблон для Вордпресса или Тумблра.
      Vitamon напишет что-нибудь на Джаве.
      sledopit поадминит веб-сервера на базе GNU/Линукс.
      andyceo напишет модуль для Друпала версий 6 или 7.
      ForeverLive создаст музыкальное сопровождение к игре или видеоролику.
      MadCat дарит до 20 часов тестирования за упоминание TestLab².
      Yogo разработает настольное приложение или клиент на Джаве.

      Ищут работников

      MATPOCKuH нуждается в календаре.
      alexeygrigorev ищет тимлида и дизайнера.
      maashaa примет помощь дизайнера.
      ganqqwerty приглашают дизайнера с уклоном в МедиаВики.

      Читать дальше →
    • Пишем плагин для jQuery

      • Translation
      • Tutorial
      Эта статья призвана дать представление об основных правилах, подходах, дающих наилучшие результаты, и распространённых ошибках, на которые стоит обратить внимание при разработке плагинов для jQuery.
      Читать дальше →
    • Бенчмарк графических библиотек для PHP

        image
        В проекте который мы сейчас разрабатываем много работы с фотографиями, в результате чего скорость графической библиотеки является фактически главным фактором при оптимизации сайта. Не секрет что ImageMagick давно стал стандартом разработки на PHP, хотя уже некоторое время его оттуда сталкивает форк под названием GraphicsMagick. Мне стало интересно насколько сильно они отличаются и сколько форы могут дать старому доброму GD. К счастью как раз недавно вышел графический модуль для PHPixie который поддерживает все три библиотеки, что и позволило мне провести достаточно интересные тесты.
        Читать дальше →
      • Judy-массивы в PHP

          В Badoo используется много сервисов на C и C++, большинство из которых работают с огромными объёмами данных. Как правило, сервисы выступают в роли «быстрого кэша» или «быстрой базы данных», т.е. совершают различные операции с массивами однотипных данных. Для быстрого доступа к данным мы давно и успешно используем Judy-массивы (англ. Judy arrays). Но однажды нам захотелось странного: обрабатывать большие массивы целых чисел на PHP, и мы сразу вспомнили про Judy.

          Немного истории

          Judy-массивы были изобретены Дугласом Баскинсом (англ. Douglas Baskins) в начале 2000-го года. Проект их разработки финансировался компанией HP, но примерно через два года был закрыт. За это время было выпущено четыре версии, причём разработка последней заняла больше года, и в ней разработчики смогли в два раза ускорить Judy, в два раза уменьшить потребление памяти, хоть и далось это нелёгкой ценой: объём кода вырос в 5 раз, а его сложность  ― на порядок.
          Читать дальше →
        • Примеры использования тригонометрических функций для анимации



            Джастин Уиндл, программист и дизайнер из Google Creative Lab, опубликовал на Codepen.io интересное демо, показывающее примеры использования тригонометрических функций для задания динамики анимации (easing), которая выглядит естественно и правдоподобно. Демо написано с использованием легковесного анимационного фреймворка Sketch.js, написанного Уиндлом.

            На сайте Джастина Уиндла можно найти ещё несколько интересных и полезных примеров креативной визуализации, например анимированное меню на CSS3 Makisu, демонстрацию работы его библиотеки Coffee Physics и многое другое.

          • Арсенал веб-дизайнера

              В интернете существует множество сайтов, помогающих веб-дизайнеру в работе: ресурсы с иконками, плюшками для фотошопа, UI-китами, шрифтами, вдохновляющими работами других дизайнеров и многим другим. В этой статье я постарался собрать самые полезные сайты для веб-дизайнеров.

              Большие и популярные сайты


              Behance - работы лучших дизайнеров со всего мира

              Читать дальше →
            • парсим сайты легко и непринуждённо вместе с phpQuery

                Привет хабр, думаю у некоторых из вас возникала потребность стянуть что нибудь нужное с какова нибудь сайта. Но писать тонны функций, чтобы вытащить фразу, это очень муторно, долго и не продуктивно.
                Представляю вашему вниманию phpQuery. Это php вариант известного javascript фраемворка — jQuery.
                Автор постарался на славу и портировал почти всё что нам нужно.
                • Selectors
                • Attributes
                • Traversing
                • Manipulation
                • Ajax
                • Events
                • Utilities
                • Plugin ports

                Давайте посмотрим что она умеет.
                Поехали
              • Сервис для создания планировок помещений и интерьеров



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

                  Итак, пару лет назад, оба фаундера практически одновременно попали в жизненную ситуацию, которая бывает у всех — настало время ремонта.

                  Что из этого вышло
                • Отдаем файлы эффективно с помощью PHP

                    Если Вам потребовалось отдавать файлы не напрямую веб сервером, а с помощью PHP (например для сбора статистики скачиваний), прошу под кат.
                    Три способа отправить пользователю файл и не повесить сервер
                  • Красивый вывод изображений

                      image
                      Всегда мне не нравилось, как выводятся изображения на моих сайтах. Хотелось какой-то упорядоченности, зависимости. Поэтому, я полез искать скрипты и решения в гугле. После безуспешных поисков, решено было делать что-то самому.
                      Но что? Я стал смотреть, как сделан вывод картинок у популярных сайтов. Всё мне не нравилось, пока я не додумался посмотреть вывод в google images и google+. Меня поразило то, что я никогда этого не замечал картинки выравниваются по ширине и высоте не обрезаясь. Такой принцип я и захотел реализовать. Получается мозаика. И всё будто на своём месте.
                      Не долго думая, я сел писать код, который сможет вывести картинки так же.
                      Читать дальше →
                    • Написание программ на PHP с использованием fork()

                        Параллельные программы на PHP


                        Раньше заголовок темы был «Написание многопоточных программ на PHP». В PHP есть ровно один «нормальный» способ писать приложения, которые используют несколько ядер/процессоров — это fork(). О прикладном использовании системного вызова fork() в языке PHP и расширения pcntl я и расскажу. В качестве примера мы напишем достаточно быструю параллельную реализацию grep (со скоростью работы, аналогичной find . -type f -print0 | xargs -0 -P $NUM_PROCS grep $EXPR).
                        Читать дальше →
                      • Подробно о свойстве float

                        • Translation
                        Правильное использование CSS свойства float может стать непростой задачей даже для опытного верстальщика. В этой статье собраны варианты применения float, а также некоторые ошибки, с наглядными примерами.

                        Читать дальше →
                      • MongoDB: Запросы

                          Хоть и некоторые писали относительно моего предыдущего топика MongoDB: Создание, обновление и удаление документов, что это пересказ офф. документации, я с этим не полностью согласен. Мне показалось, что информация в нём оказалось кому-то полезной, поэтому выкладываю продолжение.

                          Find — аналог SELECT в MySQL. Используется для выборки документов из MongoDB. Возвращает массив документов в виде коллекции, если документов нет — пустую коллекцию. Пример:

                          > db.users.find();

                          Вернёт всех пользователей из коллекции.

                          > db.users.find( { age: 27 } );

                          Вернёт всех пользователей, у которых возраст равен 27.
                          Читать дальше →
                        • Реализация нечеткого поиска



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

                            В данной статье описывается возможная реализация нечеткого поиска, которая была применена для поиска на сайте edatuda.ru.
                            Читать дальше →
                          • Равномерное выравнивание блоков по ширине

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

                              В общем в задачах вёрстки периодически возникают моменты, когда появляется необходимость выровнять какой-нибудь список по ширине экрана. При этом пункты этого списка должны выравниваться равномерно, прижимаясь своими крайними элементами к границам контейнера, а расстояние между ними должно быть одинаковым.
                              image
                              Читать дальше →
                              • +154
                              • 11.6k
                              • 87
                            • Не слушайте их

                                Не слушайте их, когда они говорят, что ваша идея бесперспективна.
                                Когда говорят, что идея должна быть Идеей.
                                Эти перфекционисты, мой бог, они говорят вам, что лучше потратить год на отладку.
                                Они говорят, что пользователи капризны и не примут проект с недоработками.
                                Вы предпочитаете слушать их? Тех, которые из-за своего перфекционизма сами ничего не запустили?
                                Это лучшая отмазка для тех, кто не хочет пытаться – «Либо надо сделать идеально, либо не делать.»
                                Идеал недостижим. Нет предела совершенству. Проект всегда будет недоработан. Такова природа бытия.
                                Поэтому, не тяните. Не тяните с запуском стартапа.
                                Энтузиазм пропадает. Появляются новые идеи. Меняются планы.
                                Просто запускайте, поглощайте критику, улучшайте. Главное – это готовая основа.

                                Не слушайте их. Слушайте себя.
                              • Еще раз про 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 на адрес источника.
                                  Читать дальше →