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

понедельник, 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);
}

воскресенье, 25 декабря 2016 г.

Yii2 + php7 not work "composer install"

Я хотел развернуться на ubuntu 16.04 (Xenial). Из коробки там идет php 7.0.8. Но стандартная команда 
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
не работала
Вывод ошибки
Your requirements could not be resolved to an installable set of packages.
  Problem 1
    - The requested package bower-asset/slick-carousel could not be found in any version, there may be a typo in the package name.
  Problem 2
    - yiisoft/yii2 2.0.7 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - yiisoft/yii2 2.0.6 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - Installation request for yiisoft/yii2 >=2.0.6 -> satisfiable by yiisoft/yii2[2.0.6, 2.0.7].
Лечится просто
sudo apt-get install php-mbstring 
Если далее мы увидим ошибку
Problem 1
    - codeception/base 2.2.3 requires phpunit/phpunit >4.8.20 <5.5 -> satisfiable by phpunit/phpunit[4.8.21, 4.8.22, 4.8.23, 4.8.24, 4.8.25, 4.8.26, 4.8.27, 4.8.28, 4.8.29, 4.8.30, 4.8.31, 5.0.0, 5.0.1, 5.0.10, 5.0.2, 5.0.3, 5.0.4, 5.0.5, 5.0.6, 5.0.7, 5.0.8, 5.0.9, 5.1.0, 5.1.1, 5.1.2, 5.1.3, 5.1.4, 5.1.5, 5.1.6, 5.1.7, 5.2.0, 5.2.1, 5.2.10, 5.2.11, 5.2.12, 5.2.2, 5.2.3, 5.2.4, 5.2.5, 5.2.6, 5.2.7, 5.2.8, 5.2.9, 5.3.0, 5.3.1, 5.3.2, 5.3.3, 5.3.4, 5.3.5, 5.4.0, 5.4.1, 5.4.2, 5.4.3, 5.4.4, 5.4.5, 5.4.6, 5.4.7, 5.4.8].
    - codeception/base 2.2.4 requires phpunit/phpunit >4.8.20 <5.5 -> satisfiable by phpunit/phpunit[4.8.21, 4.8.22, 4.8.23, 4.8.24, 4.8.25, 4.8.26, 4.8.27, 4.8.28, 4.8.29, 4.8.30, 4.8.31, 5.0.0, 5.0.1, 5.0.10, 5.0.2, 5.0.3, 5.0.4, 5.0.5, 5.0.6, 5.0.7, 5.0.8, 5.0.9, 5.1.0, 5.1.1, 5.1.2, 5.1.3, 5.1.4, 5.1.5, 5.1.6, 5.1.7, 5.2.0, 5.2.1, 5.2.10, 5.2.11, 5.2.12, 5.2.2, 5.2.3, 5.2.4, 5.2.5, 5.2.6, 5.2.7, 5.2.8, 5.2.9, 5.3.0, 5.3.1, 5.3.2, 5.3.3, 5.3.4, 5.3.5, 5.4.0, 5.4.1, 5.4.2, 5.4.3, 5.4.4, 5.4.5, 5.4.6, 5.4.7, 5.4.8].
    - codeception/base 2.2.5 requires phpunit/phpunit >4.8.20 <6.0 -> satisfiable by phpunit/phpunit[4.8.21, 4.8.22, 4.8.23, 4.8.24, 4.8.25, 4.8.26, 4.8.27, 4.8.28, 4.8.29, 4.8.30, 4.8.31, 5.0.0, 5.0.1, 5.0.10, 5.0.2, 5.0.3, 5.0.4, 5.0.5, 5.0.6, 5.0.7, 5.0.8, 5.0.9, 5.1.0, 5.1.1, 5.1.2, 5.1.3, 5.1.4, 5.1.5, 5.1.6, 5.1.7, 5.2.0, 5.2.1, 5.2.10, 5.2.11, 5.2.12, 5.2.2, 5.2.3, 5.2.4, 5.2.5, 5.2.6, 5.2.7, 5.2.8, 5.2.9, 5.3.0, 5.3.1, 5.3.2, 5.3.3, 5.3.4, 5.3.5, 5.4.0, 5.4.1, 5.4.2, 5.4.3, 5.4.4, 5.4.5, 5.4.6, 5.4.7, 5.4.8, 5.5.0, 5.5.1, 5.5.2, 5.5.3, 5.5.4, 5.5.5, 5.5.6, 5.5.7, 5.6.0, 5.6.1, 5.6.2, 5.6.3, 5.6.4, 5.6.5, 5.6.6, 5.6.7, 5.6.8, 5.7.0, 5.7.1, 5.7.2, 5.7.3, 5.7.4].
    - codeception/base 2.2.6 requires phpunit/phpunit >4.8.20 <6.0 -> satisfiable by phpunit/phpunit[4.8.21, 4.8.22, 4.8.23, 4.8.24, 4.8.25, 4.8.26, 4.8.27, 4.8.28, 4.8.29, 4.8.30, 4.8.31, 5.0.0, 5.0.1, 5.0.10, 5.0.2, 5.0.3, 5.0.4, 5.0.5, 5.0.6, 5.0.7, 5.0.8, 5.0.9, 5.1.0, 5.1.1, 5.1.2, 5.1.3, 5.1.4, 5.1.5, 5.1.6, 5.1.7, 5.2.0, 5.2.1, 5.2.10, 5.2.11, 5.2.12, 5.2.2, 5.2.3, 5.2.4, 5.2.5, 5.2.6, 5.2.7, 5.2.8, 5.2.9, 5.3.0, 5.3.1, 5.3.2, 5.3.3, 5.3.4, 5.3.5, 5.4.0, 5.4.1, 5.4.2, 5.4.3, 5.4.4, 5.4.5, 5.4.6, 5.4.7, 5.4.8, 5.5.0, 5.5.1, 5.5.2, 5.5.3, 5.5.4, 5.5.5, 5.5.6, 5.5.7, 5.6.0, 5.6.1, 5.6.2, 5.6.3, 5.6.4, 5.6.5, 5.6.6, 5.6.7, 5.6.8, 5.7.0, 5.7.1, 5.7.2, 5.7.3, 5.7.4].
    - codeception/base 2.2.7 requires phpunit/phpunit >4.8.20 <6.0 -> satisfiable by phpunit/phpunit[4.8.21, 4.8.22, 4.8.23, 4.8.24, 4.8.25, 4.8.26, 4.8.27, 4.8.28, 4.8.29, 4.8.30, 4.8.31, 5.0.0, 5.0.1, 5.0.10, 5.0.2, 5.0.3, 5.0.4, 5.0.5, 5.0.6, 5.0.7, 5.0.8, 5.0.9, 5.1.0, 5.1.1, 5.1.2, 5.1.3, 5.1.4, 5.1.5, 5.1.6, 5.1.7, 5.2.0, 5.2.1, 5.2.10, 5.2.11, 5.2.12, 5.2.2, 5.2.3, 5.2.4, 5.2.5, 5.2.6, 5.2.7, 5.2.8, 5.2.9, 5.3.0, 5.3.1, 5.3.2, 5.3.3, 5.3.4, 5.3.5, 5.4.0, 5.4.1, 5.4.2, 5.4.3, 5.4.4, 5.4.5, 5.4.6, 5.4.7, 5.4.8, 5.5.0, 5.5.1, 5.5.2, 5.5.3, 5.5.4, 5.5.5, 5.5.6, 5.5.7, 5.6.0, 5.6.1, 5.6.2, 5.6.3, 5.6.4, 5.6.5, 5.6.6, 5.6.7, 5.6.8, 5.7.0, 5.7.1, 5.7.2, 5.7.3, 5.7.4].
    - phpunit/phpunit 5.7.4 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 5.7.3 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 5.7.2 requires ext-dom * -> the requested PHP extension dom is missing from your system. 
То решение также простое
sudo apt-get install php-dom 

пятница, 23 декабря 2016 г.

Управляем Arduino пультом от телевизора



Чтобы управлять сигналами нужно сначала научиться их отслеживать
Давайте соберем по схеме

По сути тут нужен только 8-й пин. Но я питание тоже беру с Arduino, так что к плате у меня идет 3 провода (видно на видео).

Качаем библиотеку и добавляем её в хранилище библиотек редактора. У меня это путь C:\Program Files (x86)\Arduino\libraries

Важно(!)
Если в хранилище библиотек уже есть папка RobotIRremote то нужно её убрать временно. Например я просто сделал из неё архив

Заливаем прошивку
#include <IRremote.h>

int RECV_PIN = 8;
int PIN_LED = 13;

IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
  pinMode(PIN_LED, OUTPUT);
  digitalWrite(PIN_LED, HIGH);
}

void loop() {
  if (irrecv.decode(&results)) {
    if (results.value == 3772793023) {
      digitalWrite(PIN_LED, !digitalRead(PIN_LED));
    }
    
    Serial.println(results.value);
    irrecv.resume(); // Receive the next value
  }
  delay(100);
}

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