• Как отправить первые строки файла на почтовый ящик?

    @YoungOldMan Автор вопроса
    Спасибо большое за наводку. Вот что получилось, вдруг кому пригодится:
    $filename= 'file.txt';//путь к файлу
    $txt = file($filename);//получаем массив строк
    $txt2 = array_slice($txt, 0, 10);//выбираю первые 10 строк
    $txt3 = implode('', $txt2);//избавляюсь от лишнего кода
    			$mail -> sendMail ($email, $par, $txt3);//класс для отправки сообщений, у каждого разный, в зависимости от того, какой вы используете
    			file_put_contents($filename, array_slice($txt, 10));//удаляю первые 10 строк из файла
    Ответ написан
    Комментировать
  • Как понять почему не работает флешка?

    @vilgeforce
    Раздолбай и программист
    Очень важные данные - готовьте очень много денег и тащите в специализированные конторы.
    Ответ написан
    2 комментария
  • Всегда ли БП ест максимум электроэнергии или в зависимости от нагрузки?

    Jump
    @Jump
    Системный администратор со стажем.
    Он будет потреблять ровно столько, сколько берет нагрузка минус потери на самом блоке.
    Потери зависят от КПД.

    КПД у хороших блоков порядка 80%
    Т.е 20% потребленной энергии идет на нагрев, а 80%идет на питание вашего компьютера.

    Обычно блок питания показывает максимальный КПД при нагрузке 50-70%.
    Т.е для вашего блока минимальные потери будут, если подключать к нему нагрузку в 350-500ватт.

    Если вы будете подключать нагрузку в районе 100ватт и меньше, то КПД вашего блока питания будет хуже в разы. Т.е большая часть энергии будет уходить в тепло.
    Ответ написан
    Комментировать
  • Почему raspberry pi 2 нестабильно работает через SSH?

    @Eddy_Em
    1. Для отладочного подключения не нужны ни монитор, ни клавиатура. Нужен лишь однодолларовый переходник USB<->UART, подключаемый к отладочному UART'у "малинки". Второй конец — в компьютер, открываем терминал и вперед!

    2. Проверьте питание. Возможно, его не хватает.
    Ответ написан
    2 комментария
  • Всегда ли БП ест максимум электроэнергии или в зависимости от нагрузки?

    eapeap
    @eapeap
    Сисадмин, Беларусь
    он расходует ее столько, сколько нужно в данный момент

    Да
    Ответ написан
    Комментировать
  • Почему раздел 5 начинается не на границе физического сектора?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Единицы измерения: секторов из 1 * 512 = 512 байтов
    /dev/sda5 512006144 1228806143 716800000 341,8G 7 HPFS/NTFS/exFAT
    Раздел 5 начинается не на границе физического сектора.

    Почему вдруг? 512006144 % 8 == 0.
    Ответ написан
  • Как угадать возраст за наименьшее кол-во попыток?

    @Mercury13
    Программист на «си с крестами» и не только
    Бинарный поиск, однако точка деления — не (a+b)/2, а медиана куска распределения от a до b (т.е. round(F−1([F(a) + F(b)]/2)); F(·) — функция распределения, тупо переделанная из кусочно-постоянного вида в кусочно-линейный, сплайновый или ещё какой-нибудь).
    Немного неоптимально, но крайне просто.

    З.Ы. Эта штука достаточно оптимальна для «гладких» распределений. В общем случае неоптимальна — например, если у нас три возраста с вероятностями 0,45, 0,1 и 0,45, стоит спросить первый, потом третий и уж при полном невезении второй (среднее 1,65 запроса), а не брать среднее, а затем — первое или второе (в среднем 1,9 запросов).

    Если нужен точный оптимум — решать задачу динамического программирования по критерию
    N[a,b] = min{c} (1 + (N[a,c−1]p[a,c−1] + N[c+1,b]p[c+1,b]) / p[a,b]).
    Граничные условия: при a = b N[a,b] = 1; при a>b N[a,b] = 0.
    p[a,b] — суммарная вероятность от a до b включительно; вычисляется как sum[b]−sum[a−1]; sum[i] = sum{x <= i} p(x).
    N[0,M] = ?

    Или, обозначив Q[a,b] как N[a,b]p[a,b],
    Q[a,b] = min{c} (p[c] + Q[a,c−1] + Q[c+1,b]).
    Так как p[0,M] = 1, то Q[0,M] = N[0,M].
    Граничные условия: при a = b Q[a,b] = p[a]; при a>b Q[a,b] = 0.
    Q[0,M] = ?

    Решается задача за O(M²) операций. Если нужно хранить всю информацию, чтобы в нужный момент прокрутить цепь запросов — O(M²) памяти; если только указать оптимум — можно обойтись O(M).
    Ответ написан
    3 комментария
  • Как угадать возраст за наименьшее кол-во попыток?

    agent10
    @agent10
    Software Engineer
    Имхо, для точного результата - только бинарный поиск как вы и делаете.
    Все остальные способы - результат с вероятностью.
    Ответ написан
    4 комментария
  • Подходящий осциллограф для новичка?

    @iv_k
    за 10 т.р. более менее нормальный осциллограф не купить. только usb приставку
    Ответ написан
    3 комментария
  • Существуют в продаже прозрачные E-INK дисплеи?

    GavriKos
    @GavriKos
    Мне кажется, такие E-ink не могут существовать технически. Как работает e-ink: в ячейке есть порошок двух цветов - белый и черный. Контроллер просто перемещает их в ячейке - т.е. сверху либо черный порошок. либо белый. Соответственно состояния прозрачности нет вообще. Вам подойдет ЖК.
    Ответ написан
    Комментировать
  • Существуют в продаже прозрачные E-INK дисплеи?

    kAIST
    @kAIST
    Это скорее всего не E-INK, а обычные ЖК.
    Можно поискать на том же али: ru.aliexpress.com/wholesale?catId=0&initiative_id=...
    Ответ написан
    Комментировать
  • Как на самом деле передаются биты по сетевому кабелю?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Наличие-отсутствие сигнала в проводе было во времена телеграфных аппаратов, т.е. примерно лет двести назад. С тех пор много чего изменилось. В современном сетевом кабеле (возьмем для примера только медь), по кабелю передаются импульсы с частотой 100, 250, 500 и более МГц, причем, не по одной, а по 2, 4 или даже 6 парам. (Вообще-то, там все несколько сложнее, но для понимания сути вполне достаточно считать пары параллельными линиями передачи.) Принято говорить о парах проводов, т.к. не бывает уровня (потенциала), самого по себе; уровень - он всегда относительно чего-то другого, например, в одном проводе относительно другого провода. Отсюда пары, а почему они называются витыми - гуглить самостоятельно. Передаваемый сигнал промодулирован т.н. Импульсно-Амплитудной модуляцией (PAM), т.е. передающая и принимающая стороны различают 3, 5 или даже 16 разных уровней сигнала, которыми, грубо говоря, и закодированы соотв. биты.

    66e6c58266524ec6bb132fb384638d75.jpg

    Таким образом можно передавать по кабелю несколько "разных бит" одновременно. Ну, а ситуация, когда в один и тот же момент времени в одном месте проводника один потенциал, а в другом - другой, вообще, должна быть привычна даже для школьной физики... так работает любая антенна и, вообще, любой проводник с переменным током. Если отвечать на вопрос буквально, то в "одном месте" каждой пары в любой момент времени "находится" только один передаваемый импульс, но это может означать много разных бит.

    Теперь о скорости и расстоянии. Скорость распространения сигнала в проводнике на уровне школьной физики (если там, конечно, сейчас об этом вообще рассказывают) принято считать равной скорости света в вакууме, около 3m за 1 ns, но на практике она меньше, т.к. проводник не идеален и, как правило, находится не в вакууме, а в изоляции из диэлектрика. Привносимая диэлектриком паразитная емкость снижает скорость распространения сигнала в проводнике (не путать со скоростью распространения поля!) Но те, кто не прогуливал физику с математикой, вполне могут прикинуть порядок цифр для проводника длиной 1000км, как для поезда, идущего из А в Б или даже "расстояние" между двумя соседними битами, передаваемыми по одной паре :)

    Правда, полученые таким нехитрым рассчетом результаты (пусть даже с учетом волновых характеристик кабеля) все еще далеки от реальности для расстояний в тысячи км, т.к. даже в самом лучшем кабеле такой длины вся энергия сигнала передающей стороны превратилась бы в тепло и излучение, и принимающей стороне осталась бы только дырка от бублика. Длина реального сетевого кабеля между двумя устройствами (витая пара!), грубо говоря, не может превышать 100м. Дальше сигнал попадает в другое устройство, которое вносит свои задержки, и т.д. и т.п. от Таганрога, и до самого Ютюба. Конечно, не все эти устройства соединены медью, но мы не станем вдаваться в тонкости распространения света в разных оптических средах, и радиоволн в ионосфере, чтоб у среднестатистической аудитории Тостера ненароком не снесло крышу. Тут важно только то, что на практике мы имеем уже не ns, а десятки, сотни и более ms задержки.

    Это было даже не введение, а популярно-упрощенная шпаргалка на тему того, "как биты идут по проводам", или, выражаясь проще, что происходит в сети на уровне 1 семиуровневой модели ISO/OSI. Пакеты, а также фреймы, датаграммы и пр. абстрактные договоренности о том, как именно считать биты - это уже из другой оперы, точнее, на других уровнях, причем, на каждом свои, и одни в других. Учитывая то, что внутри процессора и памяти (где мы имеем дело с данными из этих пакетов) происходит все то же самое, что и в кабеле, на любом уровне модели вполне корректно считать, что пакет этого уровня доставляется "единомоментно".
    Ответ написан
    6 комментариев
  • Как на самом деле передаются биты по сетевому кабелю?

    @n3k0
    Сетевая модель ISO/OSI подробно расскажет об этом. Возможно даже с картинками.
    Ответ написан
    Комментировать
  • Какова теоретическая предельная дальность Bluetooth?

    Neuroware
    @Neuroware
    Программист в свободное от работы время
    Для задач нужно подбирать правильные инструменты, про дальнюю связь можно почитать здесь. По сути вопроса, чем дальше идет сигнал тем в более плачевном виде он доходит. Дальность на таких растояниях будет зависеть не столько от оборудования сколько от протокола, все протоколы Bluetooth расчитаны на дальность не более 100 метров, поэтому связь может не работать элементарно от того, что сигнал "слишком медленно идет". Вторая проблема это шумоподавление, протокол не расчитан на такое количество шумов, которое образуется на растоянии указанном в вопросе и просто не может выудить из шума информацию. Решение, не издевайтесь над блютузом, ищите правильное оборудование.
    Ответ написан
    2 комментария
  • Какие есть типы данных c++?

    @Eddy_Em
    Я бы вообще руки отрывал за использование С++ с его жутким оверхедом на микроконтроллерах!
    В данном случае даже glibc нафиг не нужна: реализуем strcmp() вручную, аналогично поступаем для memmove и прочих полезных функций. В итоге код будет небольшим + шустрым.
    Если нужно сравнить содержимое полученной строки с эталоном, то просто пишем
    int strcmp(char *a, char *b){
      int ret = 0;
      do{ ret = (int)(*a++) - (int)(*b++); }while(!ret && *a && *b);
      return ret;
    }
    char *in = get_serial_buf(); // функция, возвращающая указатель на первый байт в кольцевом приемном буфере USART
    char *ref = "строка";
    if(!strcmp(in, ref)){ // действия, выполняемые при равенстве строк
    }

    Если нужно найти подстроку, то аналогичным образом реализуем функцию strstr:
    int strstr(char *haystack, char *needle){
      char *ret = NULL, *n = needle+1, n0 = needle[0];
      do{
        int cmp;
        if(*haystack != n0) continue;
        ret = haystack++;
        do{ cmp = (int)(*haystack++) - (int)(*n++); }while(!cmp && *haystack && *n);
        if(!cmp && !*n) break; // found
        ret = NULL; n = needle + 1;
        if(!haystack) break; // haystack ended while not found
      }while(*(++haystack));
      return ret;
    }
    Ответ написан
    6 комментариев
  • Какие есть типы данных c++?

    IlyaEvseev
    @IlyaEvseev
    Opensource geek
    1) uint8_t buffer или uint8_t *buffer?
    2) если второе, то используйте функцию memcmp.
    Ответ написан
    Комментировать
  • При сборке из исходников make выдает "Error 1", о чем данная ошибка говорит?

    @AVKor
    Правильный ответ на это вопрос - ставить пакет из репозитория.
    Ответ написан
    Комментировать
  • При сборке из исходников make выдает "Error 1", о чем данная ошибка говорит?

    @Eddy_Em
    equery b /usr/include/xcb/xcb_keysyms.h
     * Searching for /usr/include/xcb/xcb_keysyms.h ... 
    x11-libs/xcb-util-keysyms-0.4.0 (/usr/include/xcb/xcb_keysyms.h)

    ставить библиотеку xcb-util-keysyms. А так как бубунта отличается повышенным идиотизмом, этот пакет может называться, скажем, xcb-util-keysyms-devel.
    Ответ написан
    Комментировать
  • Почему не работает ОПЕРАТОР ПРИСВАИВАНИЯ!?

    Посмотрите лог ошибок. Скорее всего, в $dost_res попался какой-нибудь не тот символ, и надо использовать //TRANSLIT или //IGNORE.
    Ответ написан
    Комментировать
  • Почему не работает ОПЕРАТОР ПРИСВАИВАНИЯ!?

    @ollisso
    1. сделайте так:

    var_dump($dost_res);
    var_dump(iconv("windows-1251", "utf-8", $dost_res));
    $like_mail .= iconv("windows-1251", "utf-8", $dost_res);
    2. запустите скрипт.
    что вывело ?

    99% что dost_res пустое или же не может адекватно конвертироваться из windows-1251 в utf-8
    Ответ написан
    3 комментария