Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

helixly

  • 4
    вклад
  • 21
    вопрос
  • 8
    ответов
  • 63%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как реализовать очередь выполнения goroutines?

    pav5000
    Александр Павлюк @pav5000
    Может вам удобнее навесить вейтгруппы на процессы и запустить их все одновременно?
    https://golang.org/pkg/sync/#WaitGroup

    1. Каждой задаче в структуру пихаем вейтгруппу, делаем ей Add(1), а после выполнения делаем Done().
    2. У каждой зависимой задачи перед выполнением делаем Wait() у вейтгрупп тех задач, которые она должна дождаться.
    3. ????
    4. PROFIT!!!
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как реализовать очередь выполнения goroutines?

    RidgeA @RidgeA
    не знаю как лучше, но я бы это отсортировал в порядке зависимостией и поочереди выполнял бы методы.

    [
        {
            "method": "controller:method1",
            "params": {},
            "id": 1
        },
        {
            "method": "controller:method2",
            "params": {},
            "id": 2,
            "wait": 1
        },
        {
            "method": "controller:method2",
            "params": {},
            "id": 3,
            "wait": 1
        },
        {
            "method": "controller:method2",
            "params": {},
            "id": 4,
            "wait": 2
        }
        {
            "method": "controller:method2",
            "params": {},
            "id": 5
        }
    ]


    привести к виду
    [
      [
        {
            "method": "controller:method1",
            "params": {},
            "id": 1
        },
        {
            "method": "controller:method2",
            "params": {},
            "id": 5
        }  
      ],
      [
        {
            "method": "controller:method2",
            "params": {},
            "id": 2,
            "wait": 1
        },
        {
            "method": "controller:method2",
            "params": {},
            "id": 3,
            "wait": 1
        },
      ],
      [
        {
            "method": "controller:method2",
            "params": {},
            "id": 4,
            "wait": 2
        }  
      ]
    ]


    а потом уже как-то так
    for _, step := range steps {
      for _, f : range step {
        f.method(f.params)
      }
    }


    что-то похоже на на графы и топологическую сортировку
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Чем отличается записи _get и get?

    qonand
    Максим Федоров @qonand
    Software Engineer
    __get - это магический метод уровне PHP, getSettings() - это просто более удобная реализация на уровне фреймворка, основанная на магическом методе __get
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • SQL запрос для фильтра характеристик?

    Rsa97
    Rsa97 @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT `p`.*
      FROM `products` AS `p`
      JOIN `PropertyPivot` AS `pp1` ON `pp1`.`product_id` = `p`.`id`
        AND `pp1`.`property_id` = :p1_property AND `pp1`.`option_id` = :p1_value
      JOIN `PropertyPivot` AS `pp2` ON `pp2`.`product_id` = `p`.`id`
        AND `pp2`.`property_id` = :p2_property AND `pp2`.`option_id` = :p2_value
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • SQL запрос для фильтра характеристик?

    V Sh. @JuniorNoobie
    Сижу в поддержке, пишу мелкие проекты
    Могу предложить три варианта:
    1) Делаем все одним запросом, что-то типа:
    SELECT product_id
    FROM PropertyPivot
    WHERE property_id IN (...) AND option_id IN (...)
    GROUP BY product_id
    HAVING count(*) = количество параметров поиска


    2) Последовательный отсев кандидатов по каждому параметру. Например, пришел поиск по трем параметрам. Мы сначала делаем выборку по одному параметру, сохраняем промежуточные данные, затем делаем выборку по промежуточным данным по второму параметру и т.д.

    3) Самый, как мне кажется, изощренный вариант. Строим pivot-таблицу по параметрам поиска, соединяем ее с таблицей товаров по product_id, вешаем условие и сохраняем запрос...
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Экспресс курс по разработке под iOS. Есть варианты?

    nico @nico
    www.raywenderlich.com лучшие книги и курсы тут имхо
    только вот быстро после веб разработки вряд ли получится. Я в схожей ситуации, ковыряюсь вечерами уже 3-й месяц. Простые вещи то понятно писать легко, а вот что-то посложнее читалки твиттера уже надо знать фреймворки и там тонкостей ппц как много
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Экспресс курс по разработке под iOS. Есть варианты?

    Pparma @Pparma
    По obj-c мне хорошо помог вот этот курс https://www.youtube.com/watch?v=ZqKbN_C4Yvg
    Дядька довольно доходчиво и не нудно рассказывает, с примерами и домашками :)
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Запрос XPath без дочерних элементов?

    glebovgin
    Ilya @glebovgin
    Full Stack Web Developer
    Если структура html одинакова, то сработает такой вариант
    //div[contains(@class, "some-class")]/div/span[1]/following-sibling::text()

    А вот такой вариант
    //div[contains(@class, "some-class")]/div/text()[normalize-space()]

    выберет все текстовые элементы, исключая пробелы. В конкретно вашем случае в item(0)->nodeValue будет значение между двумя span. Если нужны все текстовые элементу внутри div, то просто пройти foreach по результатам.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Использование $$ в PHP?

    Elios @strelov1
    Да причем тут битрикс, это классический способ использования именованных переменных
    $array = ['title'=>'TITLE','slug'=>'URL','contet'=>'CONTENT.....'];
    
    foreach ($array as $key => $value) {
    	$$key = $value;
    }
    
    echo $title; // TITLE
    echo $slug; // URL
    echo $contet; // CONTENT.....
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Использование $$ в PHP?

    magalex
    Александр Латышев @magalex
    Архитектор распределённых систем управления
    Вы нашли абсолютно правильную "шутку" битрикса, это он "гадкий" :) создаёт такие переменные вот этой строчкой:
    $val = $$name;
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Использование $$ в PHP?

    kopylov_vlad
    Владислав Копылов @kopylov_vlad
    Это переменные переменных, вот пример
    <?
    $first = "second";
    $second = "third";
    echo $first; //second
    echo "\n";
    echo $$first; //third
    ?>
    Ответ написан более трёх лет назад
    6 комментариев
    6 комментариев
  • Использование $$ в PHP?

    AloneCoder
    Макс @AloneCoder
    [object Object]
    php.net/manual/en/language.variables.variable.php
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему у HTMLCollecton length 0?

    nazarpc
    Назар Мокринский @nazarpc
    Open Source enthusiast
    Вот что за мания в первой половине говорить об одном примере (где window.getElementsByTagName не существует), а во второй половине у вас появился drag, а потом jQuery...
    var list = document.getElementsByTagName('ul');
    console.log(list);
    console.log(list.length);

    Отлично работает прямо на этой странице.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как отслеживать коллизии SVG объектов?

    Ronnie_Gardocki
    Nikolay Talanov @Ronnie_Gardocki
    Я у мамы фронтендщик.
    https://greensock.com/draggable - вот это посмотрите. Сам не юзал, но по описанию подходит. + мне знающие люди советовали это в некоторых случаях.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как прочитать html файл в Python?

    suguby
    Вадим Шандринов @suguby
    программист, python, django, mysql, git, hg, linux
    видно что происходит попытка перекодировать из любимой винодовой cp1251 :) а файл видать в UTF8...
    попробуй открыть как 'rb' и конвертировать построчно
    f = open (filemane , 'rb')
    for line in f:
         print(line.decode('utf8'))

    а вообще хорошо бы знать, в какой кодировке файл.
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Как правильно перезапускать Unicorn?

    Алексей @fuCtor
    Ruby разработчик
    Можно послать сигнал:

    kill -USR2 `cat tmp/pids/unicorn.pid`

    У себя в Capistrano использую это вот так:

    namespace :unicorn do
      pid_path = "#{release_path}/tmp/pids"
      unicorn_pid = "#{pid_path}/unicorn.pid"
    
      def run_unicorn
        execute "#{fetch(:bundle_binstubs)}/unicorn", "-c #{release_path}/config/unicorn.rb -D -E #{fetch(:stage)}"
      end
    
      desc 'Start unicorn'
      task :start do
        on roles(:app) do
          run_unicorn
        end
      end
    
      desc 'Stop unicorn'
      task :stop do
        on roles(:app) do
          if test "[ -f #{unicorn_pid} ]"
            execute :kill, "-QUIT `cat #{unicorn_pid}`"
          end
        end
      end
    
      desc 'Force stop unicorn (kill -9)'
      task :force_stop do
        on roles(:app) do
          if test "[ -f #{unicorn_pid} ]"
            execute :kill, "-9 `cat #{unicorn_pid}`"
            execute :rm, unicorn_pid
          end
        end
      end
    
      desc 'Restart unicorn'
      task :restart do
        on roles(:app) do
          if test "[ -f #{unicorn_pid} ]"
            execute :kill, "-USR2 `cat #{unicorn_pid}`"
          else
            run_unicorn
          end
        end
      end
    end
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
Оценили как «Нравится»
Самые активные сегодня
  • Drno
    • 13 ответов
    • 0 вопросов
  • gogowq
    gogowq
    • 11 ответов
    • 0 вопросов
  • vabka
    Василий Банников
    • 9 ответов
    • 0 вопросов
  • Dr. Bacon
    • 7 ответов
    • 0 вопросов
  • tsklab
    Константин Цветков
    • 5 ответов
    • 0 вопросов
  • iMedved2009
    Дмитрий
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации