• Ключевое слово "вызвать саму себя" в языках программирования?

    @theg4sh
    "вызвать саму себя", что именно вы себе этим представляете? Сокращением кода? А что делать с агрументами?

    Знаю только, что подобные вещи точно можно использовать в Bash
    function testit() {
        echo "$1"
        [ -n "$1" ] && return;
        echo $__FUNCNAME__ "ok"
    }
    
    testit

    JavaScript
    function testit() {
        if (arguments.length>1 && arguments[1]<2) {
            console.log(arguments[0], arguments[1]);
            arguments.callee("offtop", arguments[1]+1);
        } else {
            console.log("no arguments left");
        }
    }
    
    testit("test", 1);

    Как видно, имя функции слегка пухнет при таком использовании, так что дело Ваше пользоваться или нет.

    Предположу, что и другие многие скриптовые языки располагают подобным инструментом.
    Наверняка, этой возможностью располагают Java и С#. Гугл в помощь.
    Ответ написан
    Комментировать
  • Как удалить пробелы в XML с помощью XSLT?

    @theg4sh
    Muhammad я же правильно понял - "удаление лишних пробелов"?

    красиво и "мало кода" не получится - функция replace с поддержкой regexp доступна только для версии >=2.0.
    Для версии 1.0 единственное подходящее под задачу решение будет:
    <xsl:stylesheet version="1.1"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
        <xsl:template match="p">
            <xsl:copy-of select="."/>
        </xsl:template>
    
        <xsl:template match="dialog">
            <p class="dialog">
                <xsl:for-each select="./*|./text()">
                    <xsl:choose>
                        <xsl:when test="self::text()">
                            <xsl:value-of select="normalize-space(.)" />
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:text> </xsl:text>
                            <xsl:copy>
                                <xsl:copy-of select="./text()"/>
                            </xsl:copy>
                            <xsl:text> </xsl:text>
                        </xsl:otherwise>
                    </xsl:choose>
                </xsl:for-each>
            </p>
        </xsl:template>
    
    </xsl:stylesheet>

    Результатом будет:
    <?xml version="1.0"?>
    
        <p>Lorem ipsum dolor sit amet,</p>
    
        <p>Quibusdam dolore iure deleniti quasi accusantium non nostrum facere neque ducimus
        mollitia et ex suscipit, placeat, eius maiores ratione cumque. <b>Provident</b> doloribus
        natus perspiciatis quas id sequi neque, molestiae cupiditate facere quod. Dolore voluptate
        consectetur:</p>
    
        <p>aperiam nihil.</p>
    
        <p class="dialog">aperiam nihil. aperiam <b>123</b> nihil. aperiam nihil. <b>123</b> </p>

    Из минусов - будет ограничение на вложенное дерево элементов, хотя думаю можно допилить пример до использования шаблона в случае otherwise.
    Ответ написан
  • Реально ли сделать интеграцию Jetbrains Hub и TeamCity?

    @theg4sh
    Slava Kryvel, проблема в кросс-доменном запросе.
    решение: добавить HTTP-заголовок
    Access-Control-Allow-Origin: http://hub.host
    в ответе от сервера tc.host

    Возможно потребуется добавить и второй заголовок, если есть ajax-авторизация:
    Access-Control-Allow-Credentials: true

    О кросс-доменных запросах хорошо разжевывается тут
    Ответ написан
    1 комментарий
  • Как исправить кодировку JSON файла?

    @theg4sh
    Кодировка должна совпадать с кодировкой указанной на самой странице с которой идет ответ, иначе все ajax-ответы будут использовать приведение к дефолтной кодировке.

    Скорее всего, болячка лечится добавлением HTTP-заголовка в ответ:
    Content-Type: application/json; charset=utf-8
    где вместо utf-8 указать требуемую кодировку.

    Получаемые HTTP-заголовки ответа можно глянуть во вкладке Net в FireBug.
    Ответ написан
    Комментировать
  • Из curl запроса в JSON?

    @theg4sh
    По теме вопроса: логично предположить, что если ответ не попадает в коллбэк done, значит тут две ветки событий, либо проблемы в jQuery, что маловероятно, либо возвращается код ошибки от сервера.
    В обоих случаях ответ даст вкладка Net в FireBug, где будет показан запрос, отправляемые заголовки запроса и ответ.

    Теперь к нюансам: есть такое понятие как кросс-доменный запрос, в котором ключевую роль играет заголовок Access-Control-Allow-Origin в ответе сервера (о котором рассказывается по ссылке). Если он не установлен в "*" или не указан ваш домен или нет заголовка Origin, то как бы не хотели получить ответ - его не будет.

    Serginyo90 поправьте блок headers: { "Authorization": "key=...." } в комментарии Дмитрий.
    здесь лишнее двоеточие, тогда вероятнее всего пройдете авторизацию и не будет возвращаться ответ Unauthorized и все заработает.

    Так же следует обратить внимание на параметры $.ajax: dataType, success, error, complete и crossDomain для начала.
    В примере от Дмитрий при установленном коллбэк-параметре error, ответ будет падать туда.
    Ответ написан
  • Почему php форма отправляет только "запомненные" данные на мейл?

    @theg4sh
    Для начала нужно найти место потери данных. Сделайте
    $('#form').submit(function(e) {
          var $form = $(this);
          console.log($form.serialize());
          return false;
          ...
    });

    В консоль должны упасть сериализованные данные.
    Далее если все ок, то смотрим в FireBug вкладку Net и глядим, все ли данные попадают в тело запроса.
    Ну и наконец смотрим что приходит на сторону сервера через
    var_dump($_POST); die();
    Ответ написан
    Комментировать
  • Как добавить watermark в файл pdf?

    @theg4sh
    stackoverflow.com/questions/12243044/is-it-possibl...
    этот вариант не рабочий оказался?
    Ответ написан
    Комментировать
  • Плохо ли использовать одну глобальную константу?

    @theg4sh
    Использовать конструкцию вида:
    class Auth:
      _instance = None;
      def __init__(self, user, pswd):
        # some initialization
        self._id = None
        pass
      def getId(self):
        return self._id
      @staticmethod
      def getInstance(user, pswd):
        if Auth._instance is None:
          Auth._instance = Auth(user, pswd)
        return Auth._instance
    
    # later use authorization as Auth.getInstance().getId();

    Вообще, стоит познакомиться поближе с понятием Singleton и содержимым вот этой ссылочки

    Upd: пример-примером, но поправил инициализацию, извиняюсь :)
    Upd2: метод getInstance должен быть статическим, чтобы удовлетворять условию использования Auth.getInstance(). Поправил.
    Ответ написан
    4 комментария
  • Как запустить парсер Кинопоиска?

    @theg4sh
    Для начала Warning - не Error.
    Какая частота запросов? Вполне возможно (даже скорее всего) Кинопоиск Вас попросту блокирует, выдавая пустую страницу... поэтому и список актеров в результате не массив и выдается это предупреждение.
    Попробуйте подождать минуту-другую и повторить запрос, если все ок - значит блокировака на лицо.
    Ответ написан
    Комментировать
  • Возможно форму помещать в другую форму?

    @theg4sh
    Тег form не может содержать вложенный тег form по правилам стандарта, Степан Романов все верно указал.
    Насколько понял, вы хотите получить различный набор полей с одной страницы, тогда Вам стоит взглянуть на тег fieldset, Ref: htmlbook.ru/html/fieldset
    Он позволяет группировать поля формы и по необходимости отключать группу(ы) целиком, указав атрибут disabled только для fieldset.
    Ответ написан
    Комментировать
  • Установка Prime archlinux?

    @theg4sh
    Изучить содержимое /var/log/X.*.log для начала.
    Ответ написан
  • Почему не показывает результаты поиска в плагине select2 jq на iOS устройствах?

    @theg4sh
    Причин может быть несколько.
    Одна из которых: safari более строг к значению параметров, чем остальные, придерживается стандарта html и не имеет "умной" обработки значения тэгов, какая есть у WebKit.
    Пруф: https://www.w3.org/TR/html401/interact/forms.html#...
    Обратите внимание на тип аттрибута label - %Text; который итерпретируется, как CDATA.
    Поэтому символ '>' скорее всего считается невалидным, стоит попробовать прогнать через htmlentities в случае с PHP, либо другим удобным способом заменить на '>'.

    К слову, подход к именованию тега option name="spares[0]" не нужен, т.к. id передается в самом массиве, поэтому достаточно будет объявить name="spares[]".

    Все же если Вам если нужно делать выборку по этим элементам, то лучше использовать подход с использованием аттрибутов data-*
    В итоге получится следующий вид:
    <optgroup label="category-sup &gt; category-sub">
    <option name="spares[]" value="1" data-optgroup="category" data-spare-id="1">...</option>
    </optgroup>
    Все объявленные аттрибуты data-* будут доступны в HTML5 через object.dataset для native js или $(ojbect).data() для jQuery >= 1.4.3.
    Ответ написан
    Комментировать
  • Как в PHP сделать правильнее выполнение условия при множестве схожих условий?

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

    Как альтернатива блокам из if - конструкция switch-case:
    switch($a){
    case "one":
    case "two":
    case "three":
      // your code
    }


    В случае использования поиска только простых строк можно воспользоваться трюком с strpos:
    if (strpos(":"+$a+":", ":one:two:three:space ship:") !== FALSE) {
      // your code here
    }

    в данном случае будет запущен всего один цикл поиска подстроки.
    Ответ написан
    Комментировать
  • Почему может барахлить парсер?

    @theg4sh
    Ilya дело говорит, обновляй xml раз в минуту и парси файл, а не url, иначе так и будешь стрелять по воробьям из пушки в надежде понять причину:
    Представь, что к твоему хосту обращается 1000 человек, и эти 1000 человек помимо того, что загружают твой сайт, еще и в фоне делают запрос до погоды яндекса, ясен-хрясен тебя яндекс будет блокировать с таким количеством запросов в минуту/секунду/др.ед.измерения :)
    Вообще тянуть какие-либо данные с внешних сайтов без кеширования и предварительной обработки - зло.
    Ты только прикинь как долго будет твоя страница грузиться, если внешний сайт внезапно станет недоступен.
    Ответ написан
    Комментировать
  • Blender 2.75, nVidia GTS 450 & CUDA, все есть, а Блендер ругается, почему?

    @theg4sh
    Вполне вероятно, что 331 поставились вместе с установкой CUDA как зависимости, либо при установке системы.
    Попробуйте переустановить все пакеты, но только через менеджер пакетов.
    Ответ написан
    Комментировать
  • Есть малина, каким образом можно измерять влажность и CO2 в помещении?

    @theg4sh
    Собственно вешаются датчики влажности и CO2 на GPIO малины, за подробностями в спеки датчиков и GPIO малины.
    Готовые решения - вряд ли в таком виде есть, но по факту можно взять те же датчики подготовленные для arduino, если никогда в руках паяльник не держали, например:
    www.ebay.com/bhp/carbon-dioxide-sensor и www.adafruit.com/products/385
    и соеденительных кабелей www.ebay.com/sch/Wire-Cable-/73136/i.html
    И еще учтите, что GPIO у малины, на первой по крайней мере насколько мне известно, не была никак защищена от короткого замыкания и т.п. вещей, так что будьте осторожны при подключении: "7 раз отмерь, 1 - отреж"
    Ответ написан
    Комментировать