Поиск по этому блогу

понедельник, 16 октября 2017 г.

Если Ваш vagrant-box не запускается на других компьютерах

В последних версиях вагранта невозможно без плясок с бубном запустить собственный бокс, который мы создали.

При создании бокса при его экспортировании и последующем импортировании он может не запуститься.

Проблема может быть в виртуальном COM-порте
Он будет пытаться писать в файл, который был по пути при экспортировании.
Вероятнее всего пути на разных машинах будут разные. Именно в этом и проблема. Давайте грепнем файлики и поищем причину такого поведения
А вот и виновник.

Поправим строчку
vb.customize [ "modifyvm", :id, "--uartmode1", "file", "/tmp/ubuntu-xenial-16.04-cloudimg-console.log" ]
Теперь все заработает как надо при запуске на другой машине. 

четверг, 5 октября 2017 г.

Ошибка InnoDB: Ignoring the redo log due to missing MLOG CHECKPOINT

У меня произошло непредвиденное выключение сервера. На борту ОС Ubuntu Zesty и MySQL Ver 14.14 Distrib 5.7.19

После включения СУБД не запустилась. 

В логе tail -f /var/log/mysql/error.log видим ошибки

Идем в /var/lib/mysql и убиваем все файлы, которые начинаются  ib_logfile

Проблема в том, что mysql не может посчитать хеш-суммы.

После из удаления все запустится.



понедельник, 14 августа 2017 г.

Проблемы при импортировании ключа

GPG error: http://ppa.launchpad.net/ondrej/php/ubuntu xenial InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 4F4EA0AAE5267A6C

Нужно выполнить

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C

Ключ берем из сообщения об ошибке

четверг, 8 июня 2017 г.

Sphinx failed to setup AOT with query_mode=0, use query_mode=1

Пример
CALL SNIPPETS(('Дон'), 'market_index', '@!(classifier_string,services_string) дон|дона|дону|доном|доне|доны|донов|донам|донами|донах' , '<span>' as before_match, '<\\/span>' as after_match)

Выдаст фатал

Uncaught exception Exception with message SphinxQL ERROR: failed to setup AOT with query_mode=0, use query_mode=1 SphinxQL QUERY: CALL 

Лечится добавлением конструкции 1 as query_mode в вызов снипета.

Пример
CALL SNIPPETS(('Дон'), 'market_index', '@!(classifier_string,services_string) дон|дона|дону|доном|доне|доны|донов|донам|донами|донах' , '<span>' as before_match, '<\\/span>' as after_match, 1 as query_mode)

Теперь ошибки не будет.

понедельник, 8 мая 2017 г.

Nginx 1.12 error 403 (directory index of is forbidden)

Если вы видите ошибки в логе

2017/05/08 08:00:56 [error] 2502#2502: *1 directory index of "/var/www/" is forbidden, client: 192.168.33.1, server: localhost, request: "GET / HTTP/1.1", host: "192.168.33.121"
2017/05/08 08:02:14 [error] 2587#2587: *1 directory index of "/var/www/" is forbidden, client: 192.168.33.1, server: localhost, request: "GET / HTTP/1.1", host: "192.168.33.121"
2017/05/08 08:02:15 [error] 2587#2587: *1 directory index of "/var/www/" is forbidden, client: 192.168.33.1, server: localhost, request: "GET / HTTP/1.1", host: "192.168.33.121"
2017/05/08 08:03:03 [error] 2587#2587: *1 directory index of "/var/www/" is forbidden, client: 192.168.33.1, server: localhost, request: "GET / HTTP/1.1", host: "192.168.33.121"

То проверьте, добавлена ли строка
index index.php index.html;

Если нет, то добавьте её и ошибка уйдет.

суббота, 4 февраля 2017 г.

Yii2 query builder order by function

Время от времени нам требуется сортировать выборку по функции в mysql.
Допустим нам нужно отсортировать список матчей по статусам. SQL-запрос будет выглядеть так:
SELECT id, status FROM matches ORDER BY FIELD(status, 0, 10, 20, 40, 30) 
 Давайте попробуем сделать этот же запрос используя yii2
$query = Match::find()->orderBy('FIELD(`status`, 0, 10, 20, 40, 30)');
И мы будем неприятно удивлены. При нормализации запроса цифровые статусы будут преобразованы. Если мы распечатаем запрос то увидим следующее:
SELECT * FROM `matches` ORDER BY FIELD(`status`, `0`, `1`, `2`, `3`, `30)` 
Все не совсем так, как мы планировали. Давайте заглянем в исходники. Как мы видим чтобы сделать как нам нужно не слишком сложно. Меняем использование билдера на следующее:
$query = Match::find()->orderBy(['FIELD(`status`, 0, 10, 20, 40, 30)' => SORT_ASC])
На этом все заработает. 

пятница, 6 января 2017 г.

Антипривычка на Arduino


#include <IRremote.h>
#include "Ultrasonic.h"

IRsend irsend;
Ultrasonic ultrasonic(9, 8);

bool TV_STATUS = true;

void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
    int distance = ultrasonic.Ranging(CM);
    Serial.println(distance);
    delay(1000);

    if (distance < 70) {
        if (TV_STATUS) {
          stopTV();
          delay(5000);
        }
    } else {
        if (!TV_STATUS) {
          playTV();
        }
    }
}

void stopTV() {
  digitalWrite(LED_BUILTIN, HIGH);
  TV_STATUS = false;
  Serial.println("TV Stoped!");
  irsend.sendSAMSUNG(0xE0E052AD, 32);
  delay(1000);    
}

void playTV() {
  digitalWrite(LED_BUILTIN, LOW);
  TV_STATUS = true;
  Serial.println("TV again play!");
  irsend.sendSAMSUNG(0xE0E0E21D, 32);
  delay(1000);
}

Количество·просмотров