Задать вопрос
  • Как рисовать простые векторные 2D фигуры в Unity3D для GUI?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Используйте NGUI.
    Версия 2 доступна бесплатно, работает хорошо. Скачать можно вот отсюда, в разделе Free Version.
    Или дождитесь выхода Unity4.6, там они делают свою новую систему GUI по типу NGUI. Думаю, за лето выпустят. А если всё-таки не успеют выпустить в версии 4.*, то в пятой точно должны выпустить.
    Ответ написан
  • Как получать прибыль при регистрации в iOS Developer Program?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    На самом деле, пока нет однозначного ответа на некоторые вопросы с выводом денег со сторов. Почитайте вот эти статьи, в них (и в комментариях) поднимаются важные вопросы. (по AppStore только одна статья, но разница не большая).
    О правомерности работы физического лица с магазино...
    Как получать доход с Google Play на расчётный счёт ООО
    Google Play — работаем легально!
    Получение доходов с Google Play на расчетный счет ИП
    Ответ написан
    3 комментария
  • Как написать медленный sql запрос?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    fulltext поиск в строке по не проиндексированной колонке. Да строчку подлиннее сделать.
    Ответ написан
    Комментировать
  • Как сделать условие SWITCH в PHP, если не знаешь какое будет значение у переменной?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    switch здесь не подходит. Ну разве что у вас на 10000 разных значений 10000 разных обработчиков. Но в таком случае тем более не стоит использовать switch, нужно использовать какой-то класс (группу классов), иначе поддержка этого станет адом.
    if ($A < 100) {
      // делаем работу если 1<=A<100
    } elseif ($A < 200) {
      // делаем работу если 100<=A<200
    } elseif ($A < 500) {
      // делаем работу если 200<=A<500
    } elseif ($A < 1000) {
      // делаем работу если 500<=A<1000
    } else {
      // делаем работу если А>1000
    }
    Ответ написан
    Комментировать
  • Где в этом простом коде может быть ошибка ?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Другая реализация:
    <input type="checkbox" onchange="check(this)" id="item-1" />
    <input type="checkbox" onchange="check(this)" id="item-2" />
    <h3 id="summa">Выберите элемент</h3>

    var items = {
      "1": {name: "Стол", price: 100},
      "2": {name: "Стул", price: 200}
    };
    function check(input) {
        var id = input.id.split('-')[1];
        items[id].checked = input.checked;
        updateSum();
    }
    function updateSum() {
        var sum = 0, names = [];
        for (var i in items) {
            if (items[i].checked) {
                names.push(items[i].name);
                sum += items[i].price;
            }
        }
        var text = "Выберите элемент";
        if (sum > 0) text = names.join('+') + '=' + sum;
        document.getElementById('summa').textContent = text;
    }
    Ответ написан
    Комментировать
  • Какую легкую IDE выбрать для php?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Netbeans - лёгкой её не назвать (достаточно ресурсоёмкая), но покажет вам ошибки, подсказки по функциям и их аргументам. Начать пользоваться достаточно пользоваться. Бесплатная.
    PhpStorm тоже хорош, но он платный.
    Если из очень простых программ - то Notepad++. Он умеет мало чего (подсветка синтаксиса, плюс кое-какие инструменты обработки текста), но очень простая и лёгкая - в смысле, запускается мгновенно, памяти не требует. Но советую сразу привыкать к нормальным инструментам - Netbeans.
    Ответ написан
    4 комментария
  • Как выбрать фамилию из текста?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Вам нужно переделать формы, в которые пользователь вводит данные. Не давайте ему заполнять всё одним текстом, дайте несколько полей для ввода - Фамилия, Имя, Отчество, Адрес, Комментарий.
    Никаким автоматическим способом нельзя во 100% случаев вытащить данные из произвольно написанной строки. Вы ведь даже не будете уверены, что пользователь все данные вписал. А если сделать отдельные поля для ввода, то вы сможете отдельно проверять их, отдельно хранить. А пользователи уже привыкли вводить все данные отдельно - так сделано почти везде на сайтах, по причинам, указанным выше.
    Ответ написан
    Комментировать
  • Какую выбрать тему для магистерского диплома?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Data mining - очень интересная тема. У России есть довольно большой набор открытых данныхещё), которые так и просятся к анализу. Попробуйте найти интересные варианты с ними.
    Например, мне понравилась история Дата-майнинг помог заработать Пулитцеровскую премию. Также была очень практичной статья Data Mining в онлайн играхвторая), давшая потрясающие результаты. Или вот статья Торговля знает, когда вы ждете ребенка, приведшая к скандалу.
    В общем, Data mining - очень перспективная тема, и в России её ещё основательно не копали, набрать материала и новизны можно будет не только на магистерскую, но и на кандидатскую диссертацию.
    Ответ написан
    1 комментарий
  • Что лучше для создания тематической социальной сети?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    1) Ruby on Rails будет хорошим выбором. Он даёт очень быстрый старт, очень быструю возможность создавать новые фичи.
    Из инструментов на php:
    2) Фреймворк Symfony2 очень мощный, а так же имеет большим количеством готового кода (бандлы), которые можно использовать в готовом виде для реализации ваших фич.
    3) Фреймворк Yii тоже очень мощный, но у него на текущий момент одна проблема - Yii1 уже устарел, и не правильно начинать на нём новый проект (тем более такой масштабный), а Yii2 пока в бета-версии, и тоже не готов к такой масштабной работе.
    4) Друпал - очень мощная система, берущая на себя (+модули), пожалуй, половину из ваших фишек. Сейчас набегут друпаллеры и расскажут точнее. Но с ним похожая с Yii ситуация - активно готовится к выходу Drupal 8, но когда он выйдет - неизвестно, может, через месяц, а может - через год. Кстати, друпал8 будет сделан на фреймворке Symfony2... Можно попробовать и на Друпал7 начать разработку.
    5) Интересным вариантом может быть Phalcon - фреймворк, выполненный чуть более чем полностью в виде расширения, а не на чистом php. Он достаточно мощный, чтобы выбрать его, и он будет очень быстрым - понадобится меньше серверов для обслуживания вашей аудитории.

    UPD. Вот вам ещё десяток поводов выбрать PHP + Symfony для нагруженного проекта.
    UPD2 Статья Обработка 1 миллиарда запросов в неделю на Symfony2 (англ.), но они делают это не на одном сервере, конечно же.
    Ответ написан
    2 комментария
  • Как заменить пробелы на тире в htaccess?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Вам нужно использовать RewriteCond перед RewriteRule и проверять наличие пробела. Что-то типа этого. И тогда уже либо перенаправлять на свой скрипт, который будет редиректить на нужный урл, либо как-то переделать url в самом апаче (тут не подскажу, но наверное можно).
    RewriteCond %{REQUEST_URI} %20
    Ответ написан
    Комментировать
  • Как правильно писать php вставки в tpl файлах?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Код выше вполне нормальный. Последние две строчки можно объединить, на работе скрипта это не скажется. Но тут есть один момент. Шаблон - это обычно html-текст, и php-инструкции в нём чужеродные (с точки зрения html), и даже расширения таких файлов обычно делают не .php, а .phtml - чтобы подчеркнуть, что это не php-скрипт с кодом. Поэтому в таких случаях используют специальный формат записи php-инструкций, причём обычно пытаются одну команду расположить в одну строчку, и не смешивать php и html в одной строчке. С этой точки зрения лучше не объединять эти две строчки в одну инструкцию php.
    Я обычно не пишу скобки, как в коде выше, я использую второй вариант открытия и закрытия блоков, без фигурных скобок:
    <div id="container">
    <?php if ($count>0): ?>
        <?php foreach($items as $item): ?>
            <div class="item"><?=$item?></div>
        <?php endforeach ?>
    <?php endif ?>
    </div>

    Но лучше поиграйтесь с этим вариантом и переходите на внешний шаблонизатор, например Twig. (вот есть урок по его встраиванию в сайт без фреймворка)
    Ответ написан
    1 комментарий
  • Где можно создать одностраничный сайт?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Для размещения сайта (любого - в том числе и одностраничного) вам нужно две вещи - доменное имя и хостинг.
    Доменное имя регистрируется у регистраторов, можно найти от 100 руб./год за доменное имя в зоне .ru. Можно даже получить имя бесплатно - в зоне .tk.
    Хостинг - фирма, которая размещает ваши файлы и делает их доступными в интернет. Можно поискать от 100 руб/мес. Есть разные типы, разные цены. Могу порекомендовать хостера DigitalOcean - цены от $5 в месяц.
    Потом в настройках домена нужно указать адрес сервера хостера, и всё будет работать.
    Почитайте статьи "Сайт для программиста" - часть 1 и часть 2, в них описаны некоторые моменты, как разместить сайт вообще бесплатно.
    Ответ написан
    2 комментария
  • Как правильно сделать проверку строки на отсутствие некоторых символов?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Перечисляем все допустимые символы и ищем, есть ли что-то кроме них:
    var illegal = /[^авекмнорстух0-9]/i;
    illegal.test("а123се64"); // false
    illegal.test("а123сг64"); // true
    illegal.test("а123се 64"); // true
    illegal.test("а123464"); // false
    illegal.test("А123ВЕ64"); // false

    Здесь true - это неверный номер.
    Ответ написан
    Комментировать
  • Как с помощью php перебрать все сочетания слов из разных колонок csv?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    сначала помещаем всё в три массива, и потом в тройном вложенном цикле проходим все комбинации.
    $colors = array('желтые', 'зеленые','синие');
    $lengths= array('длинные','короткие','узкие');
    $types = array('штаны','шорты','трусы');
    $strings = array();
    for ($i=0; $i<count($colors); $i++) {
        for ($j=0; $j<count($lengths); $j++) {
            for ($k=0; $k<count($types); $k++) {
                $strings[] = "$colors[$i] $lengths[$j] $types[$k]";
            }
        }
    }
    echo implode('<br>', $strings);
    Ответ написан
    Комментировать
  • Как узнавать о новом в php до выхода версии?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Можно читать дайджесты по php компании ZFort на хабре. Обычно раз в две недели выходит очередной выпуск, и кроме новинок инструментов и библиотек они обычно рассказывают о предстоящих изменениях в самом php.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы ссылка плавала по странице, перемещалась, и её можно было перемещать самому?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Посмотрите Greenshock draggable демку. Физики (столкновений) тут тоже нет.
    Также посмотрите на Box2d with DOM.
    Вам нужно именно на HTML? Или на canvas тоже подойдёт? Потому как для canvas есть Box2d.js (например, гляньте вот эту демку. Тут на WebGL, но такое есть и для canvas).
    Если не подойдёт, то придётся делать самому - определять столкновения и передавать импульс второму объекту.
    Ответ написан
    1 комментарий
  • Почему при парсинге страницы возвращается пустая страница?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    попробуйте вместо
    echo HtmlDomParser::file_get_html($url1);
    написать
    $dom = HtmlDomParser::file_get_html($url1);
    var_dump($dom);

    Так можно будет увидеть, что реально возвращает команда. Будет ли там объект класса simple_html_dom или нет.
    Ответ написан
    Комментировать
  • Что изучить перед написанием простой адресной книги?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Вы правильно решили, что для развития вам необходимо написать готовый сайт. Вам это даст гораздо больше, чем просто чтение книг без практики. Но тогда доведите до победного конца - не только напишите сайт, но и заведите домен, арендуйте хостинг и выложите свой сайт туда.
    В начале разработки любого проекта правильно будет взять бумажку с ручкой и записать (зарисовать) схему будущего проекта.
    Чётко запишите на бумаге одним предложением цель проекта. Продумайте используемые технологии и также запишите их на бумагу (php, mysql, ?). Позже вы сможете проанализировать, насколько вы смогли предугадать конечную архитектуру, и поможет в дальнейшем правильнее продумывать эти вопросы.
    Отдельным списком запишите те функции проекта (фичи, features), которые вы хотите реализовать.
    Дальше хорошо бы прикинуть структуру базы данных - какие таблицы планируются и какие поля в них должны быть.
    Только после этого можно приступать к программированию.

    Для начала я посоветую написать этот сервис на чистом php, без использования любых фреймворков. Иначе вы будете завалены новой информацией, которую нужно будет освоить, не связанную с конкретно задачей.
    Вам нужно будет сделать несколько страниц:
    1) главная, также можно добавить страницы о проекте, о команде, и прочие служебные
    2) регистрация и логин (логин можно на главной), по хорошему, ещё и восстановление пароля
    3) список телефонов
    4) добавление телефона
    5) редактирование телефона
    6) удаление телефона (скорее всего, кнопка удаления будет на странице списка, но такую ответственную операцию нужно подтверждать, поэтому - отдельная страница)
    Страницы 3-6 можно реализовать в одном php-файле, используя параметры страницы, а можно сделать и в отдельных файлах.

    Когда сделаете, тогда нужно подумать о развитии получившегося сайта, и начать изменять его:
    1) добавить шаблоны, чтобы разделить html-код (шаблон) и php-код (контроллер)
    2) добавить ЧПУ, чтобы адреса страниц в браузере не содержали .php и ?

    Когда сделаете, тогда уже можно перейти к повторению того же сервиса на одном из фреймворков. Могу порекомендовать микрофреймворк Silex. Вы сможете увидеть, что многие моменты, которые вы раньше делали самостоятельно, уже реализованы в фреймворке. Но та работа была не напрасной, если не знать, как это работает внутри. то сложно понять, почему в фреймворке всё реализовано именно так.
    Ещё из популярных фреймворков можно рассмотреть Laravel и Symfony2. Последний достаточно сложный фреймворк для больших проектов, но он частично похож на Silex (потому что Silex основан на Symfony2). Laravel - новый мощный фреймворк, стремительно набирающий популярность. Он простой для старта, но обладает высокой мощностью, больше, чем Silex.
    Ответ написан
    Комментировать
  • Где можно купить звуки для приложения?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Тоже задавался этим вопросом, поэтому скидывал в избранное все упоминания по источникам музыки и звуков, которые встречал в статьях о разработке приложений.
    Jamendo - много музыки, под разной лицензией, можно поискать свободные. Звуков вроде нет, только музыка.
    FreeSound.org - база данных звуков под лицензией Creative Commons License (свободные)
    SampleSwap - 7.7 ГБ свободной музыки и сэмплов профессионального качества
    Free music archive - интерактивная библиотека высококачественного легального аудио
    Ответ написан
    Комментировать
  • Как добавить на уже работающий сайт контактную форму?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Похоже, у вас сайт самописный, не основан на одной из CMS. Тогда вам нужно добавить страницу с формой обратной связи (или на страницу контактов), и отправлять её на специальный скрипт, который будет обрабатывать эту форму. Делается это очень просто. Обрабатывать можно по разному - можно писать емейл ответственному лицу, можно добавлять в базу данных в отдельную таблицу, и тогда показывать полученные данные в админке (ежели такая у вас имеется).
    Вот вам две инструкции, как сделать простые формы: раз и два.
    Ответ написан