Задать вопрос
  • С++ - как решить задачку про "Болты и Гайки"?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Algorithmic complexity - верхняя оценка сложности алгоритма. Например, оценка O(n) означает, что сложность линейная, то есть в простом случае проход по массиву осуществляется один раз; O(n2) - квадратичная, для каждого элемента массива проводится сравнение с каждым; Пузырьковая сортировка имеет оценку O(n*log(n)). Коротко почитать можно здесь
    Ответ написан
    5 комментариев
  • Как осуществить MySQL запрос?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT *
        FROM (SELECT `page_id`, max(`datetime`) AS `datetime`
                  FROM `f_comments`
                  WHERE `user` = {$userId}
                  GROUP BY `page_id`) AS `my`
            LEFT JOIN `f_comments` AS `other` ON `other`.`page_id` = `my`.`page_id`
        WHERE `other`.`user` != {$userId}
            AND `other`.`datetime` > `my`.`datetime`
    Ответ написан
    Комментировать
  • С++ - как решить задачку про "Болты и Гайки"?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Задача лёгкая, но... это же Вас интервьюируют, а не коллективный интернет-разум.
    Ответ написан
    1 комментарий
  • DAHDi - как разделить входящие маршруты?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для входящих - развести каналы DAHDI на разные контексты и/или написать небольшой IVR, который позволит звонящему выбрать номер, с которым его надо соединить.
    Для исходящих - маршрут может определяться по caller-id звонящего, в том числе и по маске:
    exten => _8XXXXXXXXXX/111, 1, Dial(DAHDI/1/${EXTEN})
    exten => _8XXXXXXXXXX/_2XX, 1, Dial(DAHDI/2/${EXTEN})
    Ответ написан
    3 комментария
  • Как форматировать таблицу на основе данных из массива?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    <?php
    $rowblock = -2;
    $rows = array();
    foreach ($profile as $i => $user) {
        if ($i%4 == 0) {
            $rows[] = '<tr>';
            $rows[] = '<tr>';
            $rowblock += 2;
        }
        $rows[$rowblock] .= "<td><img src='/profile/user/{$user['pro_img']}'>";
        $rows[$rowblock+1] .= "<td><p>{$user['pro_fam']} {$user['pro_im']} {$user['pro_otch']}<p>{$user['dol_name']}";
    }
    for ($i = $i%4; $i < 3; $i++) {
        $rows[$rowblock] .= "<td>";
        $rows[$rowblock+1] .= "<td>";
    }
    echo "<table>",implode('', $rows),"</table>";
    ?>
    Ответ написан
    1 комментарий
  • Как убрать скобки с результата функции?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если посмотреть на Google Maps Javascript API, то правильнее всего будет
    var query = event.latLng.toUrlValue(15);
    Ответ написан
    Комментировать
  • Как осуществить поиск функции по известным значениям?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если заранее неизвестен хотя бы общий вид функции, то, по моему, проще дизассемблировать программу и разобраться в вычислениях, чем пытаться определить взаимозависимости между 50 параметрами. Например, для такой функции двух переменных
    oohphsl.png
    зависимость от y сильно проявляется только в малой области значений x в районе x=b. А ведь функция может быть и кусочно-непрерывной, например
    lf3t5yz.png
    Ответ написан
  • Как задать один и тот же стиль для многих элементов?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если сразу ко всем элементам определённых типов, скажем ко всем input, select и textarea - то по тэгам, если просто к разным элементам, то по классу.
    Ответ написан
    Комментировать
  • Как осуществить поиск функции по известным значениям?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    По известному набору точек можно лишь предположить вид функции, например набор (-1, 0), (0, 0), (1, 0) может принадлежать как прямой y=0, так и синусоиде y=sin(πx) или полиному y=x3-x. Обычно вид функции выбирается из физической модели процесса, для которого получены данные.
    Ответ написан
    Комментировать
  • Как можно вывести строки из MySQL на веб-страницу?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вставить вывод внутрь while
    while($data = mysql_fetch_array($qr_result))
       echo "<div><h1>", $data['title'],"</h1><p>",$data['text'],"</p></div>";

    И не используйте функции mysql_*, они уже год как в статусе deprecated, переходите на mysqli_* или PDO.
    Ответ написан
    Комментировать
  • Как получить разницу во времени (год.месяц.день.час.минута.секунда) имея два значения в миллисекундах в javascript?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    function monthDays(year, month) {
        return (month == 2 ? 
                   ((year % 4 != 0 || 
                     (year % 100 == 0 && year % 400 != 0)) ? 28 : 29) : 
                   (((month < 8 && (month & 1) == 0) ||
                     (month > 7 && (month & 1) == 1)) ? 31 : 30));
    }
    
    function dateDiff(date1, date2) {
        var years, months, days, hours, minutes, seconds;
        var y1, m1, d1, d2, dd;
        years = date2.getUTCFullYear()-(y1 = date1.getUTCFullYear());
        months = date2.getUTCMonth()-(m1 = date1.getUTCMonth());
        days = (d2 = date2.getUTCDate())-(d1 = date1.getUTCDate());
        hours = date2.getUTCHours()-date1.getUTCHours();
        minutes = date2.getUTCMinutes()-date1.getUTCMinutes();
        seconds = date2.getUTCSeconds()-date1.getUTCSeconds();
        dd = 0;
        if (seconds < 0) {
            seconds += 60;
            minutes--;
        }
        if (minutes < 0) {
            minutes += 60;
            hours--;
        }
        if (hours < 0) {
            hours += 24;
            days--;
            dd = 1;
        }
        if (days < 0) {
            days = monthDays(y1, m1)-d1+d2-dd;
            months--;
        }
        if (months < 0) {
            months += 12;
            years--;
        }
        return {years: years, months: months, days: days,
                hours: hours, minutes: minutes, seconds: seconds};
    }
    
    var d1 = new Date("10/7/1917");
    var d2 = new Date('3/28/2014');
    var diff = dateDiff(d1, d2);
    console.log(diff.years+' лет, '+
          diff.months+' месяцев, '+
          diff.days+' дней, '+
          diff.hours+' часов, '+
          diff.minutes+' минут, '+
          diff.seconds+' секунд');
    Ответ написан
    3 комментария
  • Астерикс - как организовать мини-АТС?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Asterisk ставится на linux, вполне подходит debian или ubuntu. Функционал, который Вы описываете, реализуется без проблем. Для преобразования из аналога нужны платы или шлюзы FXS/FXO.
    Хорошие платы выпускает Digium, например здесь можно подобрать комплектацию по типу шины (PCI/PCI-Express) и количеству FXO (внешних) и FXS (внутренних) аналоговых линий. В Вашем случае, если не будете использовать факс, то подойдёт AEX801E, её потом можно расширить с помощью модулей на 1 или 4 порта FXS/FXO.
    Из IP-телефонов - Cisco Linksys SPA5xx (хороши, но дороги), Siemens Gigaset с радиотрубкой, Fanvil, Grandstream и прочие довольно дешёвые, но с качеством - как повезёт.
    Ответ написан
    Комментировать
  • Чем могут грозить предупреждения php?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Первое предупреждение говорит о том, что Вы, скорее всего, не проверяете валидность переданных пользователем данных. Если это не данные от пользователя, то всё ещё хуже, обращение к массиву по несуществующему индексу - ошибка в логике работы программы.
    Второе и третье предупреждения, как уже сказали, - результат ошибки в mysql_query, которая вернула false вместо идентификатора ресурса, скорее всего из-за неверного запроса. Грозит чем угодно, начиная от некорректного вывода элементов сайта и заканчивая дырой с SQL-инъекцией. Кроме того, использование mysql_* грозит непереносимостью сайта на следующую версию PHP, начиная с версии 5.5.0 эта библиотека в статусе depricated.
    Ответ написан
    Комментировать
  • Как и где лучше всего начать изучать программирование?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    IMHO, программирование, в первую очередь это не конкретные языки, а алгоритмы и данные. Если Вы можете построить алгоритм решения задачи и подобрать оптимальные для данного алгоритма структуры данных, то большая часть задачи уже решена. Перевести алгоритм на язык программирования (закодировать) - задача на порядок проще. По мере знакомства с конкретным языком кодирование будет проходить легче и эффективнее.
    Английский выучить крайне желательно, именно на нём идёт практически вся официальная документация, на нём общается большинство разработчиков.
    Полезно также освоить какой-нибудь язык низкого уровня, ассемблер или C (без плюсов), программирование на них позволяет легче понять, что скрывается за абстракциями языков высокого уровня.
    Ответ написан
    1 комментарий
  • Какие sql команды более эффективны?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Путь в таблице `table` поле `field1` определено как UNIQUE (или PRIMARY KEY).
    Добавление только новых
    INSERT IGNORE INTO `table` (`field1`, `field2`, `field3`) 
        VALUES (`valA1`, `valA2`, `valA3`), (`valB1`, `valB2`, `valB3`)

    Добавление с заменой
    INSERT INTO `table` (`field1`, `field2`, `field3`) 
        VALUES (`valA1`, `valA2`, `valA3`), (`valB1`, `valB2`, `valB3`) 
        ON DUPLICATE KEY UPDATE `field2` = VALUES(`field2`), `field3` = VALUES(`field3`)

    Удаление
    DELETE FROM `table` WHERE `field1` IN (`valA1`, `valB1`)
    Ответ написан
    Комментировать
  • Как пройти путь из точки A в точку D за определенное время?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    var points = [{x: 0, y: 0}, {x: 0, y: 50}, {x: 10, y: 50}, {x: 10, y: 0}];
    var segLen = [];
    var totalLen = 0;
    for (var i = 0; i < points.length-1; i++) {
        var l = Math.sqrt((points[i+1].x-points[i].x)*(points[i+1].x-points[i].x)+
                          (points[i+1].y-points[i].y)*(points[i+1].y-points[i].y));
        segLen.push(l);
        totalLen += l;
    }
    var percent = 55;
    var needLen = totalLen*percent/100;
    for (var i = 0; i < points.length-1 && needLen > 0; i++)
        if (needLen >= segLen[i]) {
            // пройти путь points[i] - points[i+1]
            needLen -= segLen[i];
        } else {
            x = points[i].x+(points[i+1].x-points[i].x)*needLen/segLen[i];
            y = points[i].y+(points[i+1].y-points[i].y)*needLen/segLen[i];
            // пройти путь points[i] - {x, y}
            needLen = 0;
        }
    Ответ написан
    Комментировать
  • Почему не записываются звонки с внутреннего на внутренний?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А что вообще показывает консоль при звонке с внутреннего на внутренний телефоны? Можете показать диалплан и вывод консоли?
    Ответ написан
  • Почему не записываются звонки с внутреннего на внутренний?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Проверьте параметр canreinvite в sip.conf или users.conf. Если он установлен в yes у обоих пользователей, то после первичного соединения Asterisk предлагает ip-телефонам соединиться напрямую, естественно, что запись при этом не работает.
    Ответ написан
  • Как исправить ошибку - The partition with /var/lib/mysql?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Подключить ещё один HDD, перенести на него /var/lib/mysql и смонтировать на этот путь
    Ответ написан
    Комментировать
  • Что сделать с кодом обратной связи?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа