Шпаргалки Просто Программиста
Перегрев процессора из-за 100% загрузки gvfsd-metadata
На улице наконец установились теплые деньки... так же, как и у моего ноутбука vaio. При чем до такой степени, что печатать что-либо стало не возможно, т.к. руки постоянно потели.
Запустив в консоли команду top
, увидел, что почти все ресурсы процессора съедает программа gvfsd-metadata
:
~$ top
top - 19:10:37 up 1:22, 2 users, load average: 1,83, 1,89, 1,91
Tasks: 234 total, 2 running, 232 sleeping, 0 stopped, 0 zombie
%Cpu(s): 29,6 us, 4,0 sy, 0,0 ni, 61,6 id, 4,3 wa, 0,0 hi, 0,5 si, 0,0 st
КиБ Mem: 8157760 total, 5089708 used, 3068052 free, 328028 buffers
КиБ Swap: 8368124 total, 0 used, 8368124 free, 1725240 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3299 username 20 0 120m 5032 2856 R 77,1 0,1 32:44.84 gvfsd-metadata
3681 username 20 0 1858m 734m 54m S 17,0 9,2 14:10.69 firefox
1715 root 20 0 207m 74m 40m S 7,0 0,9 4:04.32 Xorg
3310 username 20 0 738m 21m 13m S 6,3 0,3 3:53.82 unity-panel-ser
3312 username 20 0 342m 5448 3588 S 4,7 0,1 2:59.51 hud-service
3107 username 20 0 1607m 128m 56m S 4,3 1,6 1:46.43 compiz
Загуглив этот процесс, увидел, что проблема достаточно распространенная. Нашел решение на ubuntu-форумах. Предлагается всего лишь почистить директорию с данными этого процесса:
~$ rm -rf ~/.local/share/gvfs-metadata
После выполнения команды становится значительно легче работать, а кулер уже шумит не так громко. Не знаю, на сколько это решение окончательное, буду мониторить в ближайшие дни, и если проблема всплывет вновь, придется искать другое решение.
Отслеживаем реферальные ссылки
Во многих случаях маркетологу, при получении заявки с сайта, интересно знать, откуда пришел посетитель? Также для отслеживания объявлений используются специальные utm метки.
Рассмотрим пример, при котором пользователь приходит на одностраничный сайт и заполняет на нем форму.
<form method="POST">
<input type="text" name="name" placeholder="Ваше имя"><br>
<input type="text" name="phone" placeholder="Ваш телефон"><br>
<button type="submit">Отправить</button>
</form>
А обрабатывается форма скриптом на языке PHP:
<?php
if (isset($_POST['name']) && isset($_POST['phone'])) {
$to = '[email protected]';
$subject = 'Запрос с сайта';
$message = "Имя: {$_POST['name']}\nТелефон: {$_POST['phone']}";
$headers = "From: {$to}\r\n" . "Reply-To: {$to}\r\n" . 'X-Mailer: PHP' . phpversion();
mail($to, $subject, $message, $headers);
}
?>
Отслеживаем конверсию без перезагрузки страницы
Обычно, при отправки формы советуют редиректить пользователя на некий целевой URL, переход по которому будет означать конверсию цели.
Однако, в наш век Rich Internet Application, такой метод общения с пользователем кажется способом забиванием гвоздей камнями. Гораздо приятнее, когда форма проверяется и отправляются данные из нее прямо на той же странице, где находится пользователь. Тут же выводится и сообщение об успешной отправке. Например, как на этом лендинге по созданию целевых страниц.
Как же тогда отметить в Метрике достижение цели? Оказывается, разработчики метрики уже подумали об этом и предоставляют нам способ обозначить достижение цели через клиентский код.
А также показывают пример кода, который позволяет достигать целей конверсии без перезагрузки страницы: Можно ли задать в качестве цели нажатие посетителем на какую-либо ссылку или кнопку?
А чтобы сделать наше приложение максимально гибким, я разработал следующий код:
(function($, w, d){
$(w).on('load', function(){
$(d).on('yandex.reachGoal', function (e, params) {
var target = params.target;
params = params.params || null;
target && w.yaCounterXXXXXX && w.yaCounterXXXXXX.reachGoal(target, params);
});
});
})(jQuery, window, document);
Коду для работы требуется установленный на странице код Я.Метрики и jQuery. Здесь мы подвешиваем на документ обработчики событий, которые будут отправлять данные в Яндекс. Это нужно прежде всего для того, чтобы не передавать идентификатор счетчика в метрике по всему коду. Чтобы воспользоваться этим кодом, достаточно в коде обработки формы при успешной отправке возбуждать соответствующее событие.
$(document).trigger('yandex.reachGoal', {target:'REQUEST_SENT'});
Не забудьте добавить эту цель в интерфейсе метрики. Удачи.
Препараты с идентичным составом, но ОЧЕНЬ разной ценой
- Нурофен (120руб) и Ибупрофен (10руб)
- Мезим (300руб) и Панкреатин (30руб)
- Но-шпа (150руб) и Дротаверина гидрохлорид (30руб)
- Панадол(50руб) и Парацетамол (5руб)
- Белосалик (380руб) и Акридерм СК (40руб)
- Бепантен (250руб) и Декспантенол (100руб)
- Бетасерк(600руб) и Бетагистин (250руб)
- Быструмгель (180руб) и Кетопрофен (60руб)
Снимаем блокировку с /var/lib/dpkg/
Если во время установки или обновления программ через apt-get
процесс был прерван нажатием Ctrl+Z, то при следующей попытке запуска apt-get
получим ошибку:
E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock - open (11: Ресурс временно недоступен)
E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); он уже используется другим процессом?
Хорошо, что можно разблокировать каталог всего одной командой. А избавиться от этой проблемы просто, достаточно выполнить команду:
sudo fuser -vki /var/lib/dpkg/lock
Должно получиться примерно так:
ПОЛЬЗ-ЛЬ PID ДОСТУП КОМАНДА
/var/lib/dpkg/lock: root 4581 F.... dpkg
Завершить процесс 4581? (y/N) Y
Нажимаем «Y» и наслаждаемся нормальной работой apt-get
. Я думаю многие пользователи знали об этой команде, но некоторые новички единственным выходом считали — sudo reboot
.
Конвертация сертификата cer в pem
Бывает, что предоставляют разработчику ssl-сертификат в виде *.cer файла, а использовать его надо в виде *.pem файла.
Сконвертировать файл в ubuntu поможет команда:
openssl x509 -in certnewb.cer -inform DER -out certnewb.pem -outform PEM
Записки миллионера. Туалетная мотивация.
Самый целеустремлённый человек — это тот, который очень хочет в туалет. Все препятствия кажутся для тебя несущественными. Ведь ты готов сделать все что угодно, лишь бы достичь своей цели! Твой мозг незамедлительно генерит миллион идей, а к действиям ты приступаешь немедленно.
Я описался, потому что:
не было времени сходить в туалет..
я был слишком уставший…
потерял надежду… Я не верил, что смогу добежать.
ну конечно. Он то – добежал. У него ноги вон какие длинные…
я слишком глуп, чтобы это сделать…
Файл запуска в SiteForeverCMS
Запуск системы стартует при обращении к скрипту index.php
.
По умолчанию скрипт работает с маршрутом index, который указывает на страницу по-умолчанию.
Для того, чтобы послать запрос на работу с другим маршрутом, нужно необходимый маршрут после index.php. Т.е., чтобы обратиться к странице about
, нужно выполнить запрос index.php/about
. Для страницы about/contacts
необходимо выполнить запрос index.php/about/contacts
. Чтобы сделать запросы более понятными человеку, можно воспользоваться настройками mod_rewrite, входящего в состав сервера apache, либо другим механизмом, выполняющим аналогичные действия у других веб-серверов.
Настройка VDS на Hetzner с дистрибутивом Ubuntu 12.04. Памятка.
В этой памятке собраны основные этапы настройки VDS от провайдера Hetzner. Не смотря на то, что о нем принято отзываться не очень лестно, меня вполне устраивают его тарифы на VDS и качество предоставляемых услуг.
Сразу после установки получаем работающего пользователя root, из под которого управляем системой без использования su. И получаем к нему доступ сразу по ssh после ввода пароля.
Любой админ знает, что это очень опасно. Т.к. если злоумышленнику удастся скомпрометировать ваш пароль, он получит доступ ко всей системе.
Настройка на VDS Nginx+PHP-FPM+SiteForeverCMS
В продолжении статьи о базовой настройке VDS на Hetzner, разберем вопрос настройки Nginx и PHP-FPM и рассмотрим некоторые вопросы по работе сайта на этой связке на примере SiteForeverCMS.
Для начала удалим установленный на VDS апач (мне он все равно больше не понадобится).
sudo apt-get purge apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common libapache2-mod-php5
Т.о. мы выпилим апач из системы, как будто его никогда в ней и не было. На всякий случай можно посмотреть, какие пакеты установлены в системе, и убедится, что апача точно больше нет:
dpkg-query -W --showformat='${Package}\n' | grep apache
Дальше нам надо установить nginx и php-fpm:
sudo apt-get install nginx
sudo apt-get install php5-fpm
- « Previous
- 1
- 2
- Next »