E:Unable to Locate Package

Решил купить выделенный сервер для тестирования одного проекта. Хостинг дал на выбор несколько unix дистрибутивов, выбрал самый последний из имеющихся Ubuntu 12.0

В процессе установки необходимого софта через apt-get install постоянно вылезала ошибка E:Unable to Locate Package.

Причем при установке чего то обычно, к примеру nano или mc все ставилось без ошибки, а когда пробовал такие вещи как git, itext и т.п. получал ошибку.

Долго мучился, даже другой хостинг пробовал, в итоге вся проблема была в наличии репозиториев в файле /etc/apt/sources.list

Так как до этого я ставил программу на локальном сервере и там все заработало, решил просто копировать файл от туда на удаленную машину.

Обязательно после сохранения файла сделайте update:

 

Скрипт sh блокирует консоль *unix или как пользоваться tmux

Разворачивал один проект на ubuntu, для старта сервера нужно было запустить *.sh скрипт, но после запуска консоль превращалась в лог консоль этой программы:

1442574860278

Как бы проблем в таком случае нет, можно открыть еще одну консоль, но если выключить ту в которой запущен скрипт — падает программа.

Особенно это проблематично когда вы работаете по ssh.

Решение оказалось очень простым. Устанавливаем:

или собираем:

Tmux — менеджер сессий. Все что нам нужно после установки — это запустить его tmux attach || tmux new,  у вас откроется полноценная консоль, запускаем в ней наш скрипт, нажимаем Ctrl+b d. Все, теперь даже если закрыть ssh скрипт не прекратит свою работу.

Инструкция по пользованию:

Очень хороший способ запустить tmux:
tmux attach || tmux new — делая так, вы сперва пытаетесь подключиться к уже существующему серверу tmux, если он существует; если такого ещё нет — создаёте новый.

После этого вы попадаете в полноценную консоль.
Ctrl+b d — отключиться. (Точно так же вы отключитесь, если прервётся соединение. Как подключиться обратно и продолжить работу — см. выше.)

В одной сессии может быть сколько угодно окошек:
Ctrl+b c — создать окошко;
Ctrl+b 0…9 — перейти в такое-то окошко;
Ctrl+b p — перейти в предыдущее окошко;
Ctrl+b n — перейти в следующее окошко;
Ctrl+b l — перейти в предыдущее активное окошко (из которого вы переключились в текущее);
Ctrl+b & — закрыть окошко (а можно просто набрать exit в терминале).

В одном окошке может быть много панелей:
Ctrl+b % — разделить текущую панель на две, по вертикали;
Ctrl+b » — разделить текущую панель на две, по горизонтали (это кавычка, которая около Enter, а не Shift+2);
Ctrl+b →←↑↓ — переходить между панелями;
Ctrl+b x — закрыть панель (а можно просто набрать exit в терминале).

Недостаток — непривычным становится скроллинг:
Ctrl+b PgUp — вход в «режим копирования», после чего:
PgUp, PgDown — скроллинг;
q — выход из «режима копирования».

Звездочка у поля required Yii2

Раньше в Yii1 если использовать правило required для поля, у лейбла автоматически появлялась звездочка «*»

В Yii2 такую вещь убрали. Что бы решить эту проблему можно воспользоваться CSS.

Вставьте это код в ваше представление (view):

После этого перезагрузите страницу.

Создание новости - Google Chrome

Спасибо yiijeka

Не работает Composer Yii2

Вы только начали знакомство с Yii2, и заметили что многие плагины для него устанавливаются с помощью Composer. При работе на OpenServer у вас может возникнуть примерно следующая ошибка когда вы попытаетесь выполнить команду composer update:

Читать далее «Не работает Composer Yii2»

Две таблицы GridView на странице и пагинация

Если у вас не работает пагинация на странице где используется 2 таблицы GridView, а точнее она работает но переключает при переключении страницу обоим таблицам, то вам всего лишь нужно добавить:

Вместо «UNIQ_TABLE_NAME» впишете название для вашей таблице, пример:

 

Не работает tooltip bootstrap 3

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

В итоге все заработает, вот пример страницы которую вы можете создать у себя и проверить

 

Имеют ли право рекламировать товар и услуги по телефону

Немного не тематически, но все же интересно.

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

После нескольких раз у меня возник вопрос, имеют ли право рекламировать товар и услуги по телефону разные компании.

В Федеральном законе «О рекламе» от 13.03.2006 N 38-ФЗ статья 18:

Статья 18. Реклама, распространяемая по сетям электросвязи
1. Распространение рекламы по сетям электросвязи, в том числе посредством использования телефонной, факсимильной, подвижной радиотелефонной связи, допускается только при условии предварительного согласия абонента или адресата на получение рекламы. При этом реклама признается распространенной без предварительного согласия абонента или адресата, если рекламораспространитель не докажет, что такое согласие было получено. Рекламораспространитель обязан немедленно прекратить распространение рекламы в адрес лица, обратившегося к нему с таким требованием.

http://www.consultant.ru/popular/advert/26_2.html#p240
© КонсультантПлюс, 1992-2015

Таким образом, звонившие нарушают закон, если вы не дали своего согласия заведомо.

beforeSave() и afterSave() в Yii2

Замечательные методы beforeSave() и afterSave() в Yii2 помогают нам решать различные задачи, к примеру вы хотите перед сохранением в базу поменять формат даты, или сохранить лог действия. Но не все знают как правильно их наследовать.

Начнем с простого afterSave():

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

Теперь beforeSave():

Все практические так же как и с методом afterSave() за исключением того что нам нужно вернуть результат работы родительского метода, иначе мы при вызове метода $model->save() будем получать false, и наша модель не будет сохраняться, при этом мы не будем получать никаких ошибок. Учтите этот момент.

В Yii1 принцип такой же, только там не передаются параметры.

Yii2 cookievalidationkey — зачем он нужен и откуда его брать

Если вы устанавливаете Yii2 по средствам скачивания архива, вам необходимо задать cookievalidationkey, он служит для валидации cookie, в противном случае у вас будет ошибка при запуске вашего проекта:

Есть 2 варианта как это исправить:

1. Ввести ключ, для этого откройте файл yii/config/web.php и введите рандомный набор символов или можно использовать md5(‘asdFw42Q’)

2. Можно отключить валидацию cookie, для этого нужно прописать следующие: