Analitycs

Показаны сообщения с ярлыком решения. Показать все сообщения
Показаны сообщения с ярлыком решения. Показать все сообщения

понедельник, 27 апреля 2020 г.

Pyenv in ZSH: Failed to activate virtualenv

В zsh в MacOSX Catalina при попытке активировать pyenv вылезает
Failed to activate virtualenv. Perhaps pyenv-virtualenv has not been loaded into your shell properly. Please restart current shell and try again.
Лечить - добавив 3 строчки
export PYENV_VIRTUALENV_DISABLE_PROMPT=1
eval "$(pyenv virtualenv-init -)"
eval "$(pyenv init -)"
в ~/.zshrc Итоговый блок должен выглядеть как-то так
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
export PYENV_VIRTUALENV_DISABLE_PROMPT=1
eval "$(pyenv virtualenv-init -)"
eval "$(pyenv init -)"

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

SSL cert “err_cert_authority_invalid” on Android device only

Reason: The wrong-formed SSL chain in the server, affects only Android devices

Recipe: https://gist.github.com/bradmontgomery/6487319

For checking the SSL work: - https://www.digicert.com/help/

вторник, 11 марта 2014 г.

logrotate срабатывает в 6 часов утра

Проблема - неверное время ротирования логов

Причина - crontab по умолчанию стартует в 6 часов с копейками

Лечение

sudo mv /etc/cron.daily/logrotate /etc/logrotate.cronjob
sudo echo "0 0 * * * root /etc/logrotate.cronjob" >> /etc/crontab
sudo service cron restart

понедельник, 2 сентября 2013 г.

Зависание Safari 6.0.x - процесс npgtpo3dautoplugin

Симптомы

Safari начинает подвисать, в списке процессов npgtpo3dautoplugin жрет по 200-300%.
После убивания процесса - он восстанавливается и продолжает тормозить

Лечение

Убить этот плагин, который по факту - является какой то приблудой для Video Google Talks.

$ locate npgtpo3dautoplugin
$ sudo rm -fr "/Library/Internet Plug-Ins/npgtpo3dautoplugin.plugin"

Источник

понедельник, 22 июля 2013 г.

chef-client 11.4.4 - ArgumentError: wrong number of arguments (2 for 1)

Некоторые версии chef-client (11.4.4 в моем случае) падают с диагнозом

ArgumentError: wrong number of arguments (2 for 1)

Причина - нарушена обратная совместимость с Ruby 1.8

Лечение

Хачим Chef хирургическим вмешательством в код - facepalm ;-)

sudo nano /var/lib/gems/1.8/gems/chef-11.4.4/lib/chef/resource/lwrp_base.rb

Заменяя

-        if Resource.const_defined?(class_name, false)
+        if Resource.const_defined?(class_name)

Взлетели ;-)

воскресенье, 21 июля 2013 г.

Почему я не люблю ORM? или ORDER BY RAND() и все-все-все

Сервак тормозит так, что приехали, в базе - очередь как за колбасой в 1992 году.

SELECT TOP 1 g2_ImageBlockCacheMap.g_itemId FROM 
 g2_ImageBlockCacheMap LEFT JOIN
 g2_ImageBlockDisabledMap ON 
 g2_ImageBlockCacheMap.g_itemId=g2_ImageBlockDisable
 dMap.g_itemId WHERE g2_ImageBlockCacheMap.g_userId = 6 
AND g2_ImageBlockCacheMap
 .g_itemType = 1 AND g2_ImageBlockDisabledMap.g_itemId 
IS NULL ORDER BY RAND()

НИКОГДА!! СЛЫШИТЕ - НИКОГДА!! Не делайте "ORDER BY RAND()" на каждой странице(!) сайта под нагрузкой!!!

Екарный бабай, это ж FAQ любого собеседования.

 Вот именно поэтому я не люблю ORM и прочих "паразитов".

пятница, 10 мая 2013 г.

MacPorts port selfupdate fail

После попытки обновления MacPorts - издыхаем с предсмертными словами

--->  Updating MacPorts base sources using rsync
MacPorts base version 2.0.3 installed,
MacPorts base version 2.1.3 downloaded.
--->  Updating the ports tree
--->  MacPorts base is outdated, installing new version 2.1.3
Installing new MacPorts release in /opt/local as root:admin; permissions 0755; Tcl-Package in /Library/Tcl

Error:/opt/local/bin/port: port selfupdate failed:Error installing new MacPorts base: command execution failed

Причина - при обновлении XCode Apple в очередной раз забывает поставить Command Line Tools. Ставим - и обновляемся нормально

Как удалить пакет через YUM без удаления других пакетов без зависимостей? (dependencies)

Ответ - НИКАК. Использовать чистый rpm

rpm --nodeps -e GeoIP


А то некоторые yum под попытку удаления GeoIP пытаются еще и nginx похерить - "за компанию" (с)

суббота, 20 апреля 2013 г.

DevOps reaction

Это 10 из пяти возможных!


http://devopsreactions.tumblr.com

Порвало в клочья!

суббота, 6 апреля 2013 г.

Как добавить Product-Per-Page для WooCommerce?

Для создания виджета Product-Per-Page (выбор количества продуктов на странице) в WooCommerce нужно использовать вот такой сниппет

Добавлять в functions.php вашей темы

вторник, 26 марта 2013 г.

Как удалить/переименовать Chef node?

Если нужно переименовать ноду в Chef
  1. [Server] - открываем админку Chef-Server
  2. [Server] - удаляем ноду из списка доступных на сервере
  3. [Node] - удаляем /etc/chef/client.pem
  4. [Node] - открываем  /etc/chef/client.rb и дописываем/правим

    node_name "my-new-node-name"

  5. [Node] - запускаем chef-client 
  6. [Server] - редактируем свежесозданный экземпляр - устанавливаем список задач на выполнение и  environment
  7. [Node] - снова запускаем chef-client 

Важно - не забываем что имя Chef-node должно удовлетворять регекспу  /^[\-[:alnum:]_:.]+$/.

четверг, 28 февраля 2013 г.

Ruby: require': no such file to load -- mkmf


При установке всякой дополнительной обвязки вокруг Chef на Ruby вываливается ошибка

$ sudo gem install knife-github-cookbooks
Building native extensions.  This could take a while...
ERROR:  Error installing knife-github-cookbooks:
 ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
 from extconf.rb:1


Gem files will remain installed in /var/lib/gems/1.8/gems/json-1.7.7 for inspection.
Results logged to /var/lib/gems/1.8/gems/json-1.7.7/ext/json/ext/generator/gem_make.out

Решение

$ sudo apt-get install ruby1.8-dev

Наслаждаемся ;-)

пятница, 11 января 2013 г.

Как решить проблему с неверным product slug в Woocommerce 1.6 с WPML?

Как ни хорош Wordpress с WooCommerce, но мультиязычность там сделана... мягко говоря - через одно место.

Мало того что WPML платный, так еще и с WooCommerce наблюдаются постоянные геморрои, особенно с permalinks/slug.

Суть проблемы

Если включена мультиязычность - то после  русифицикации URL продуктов вида

http://mysupersite.com/woocommerce/product/my-super-item/

превращается в

http://mysupersite.com/woocommerce/товар/мой-супер-товар/

и при редиректах превращается либо в 404, либо в

http://mysupersite.com/woocommerce//мой-супер-товар/

Причем по

http://mysupersite.com/woocommerce/product/мой-супер-товар/


Страница доступна

Путем гугления по запросам how to fix product slug in woocommerce wpml, how to change product slug in wpml woocommerce  выяснилось, что проблема упорно возникает в течении прошлого года у разных людей.

Рекомендации извлеченные из официального форума WPML.

  • залить исправленный .po файл - в котором нужно удалить перевод product slug - не помогло.
  • скачать обновленную версию WooCommerce Multilingual. Почему его не видел Plugin Update - загадка.  А вот это вроде помогло - взлетело. 
Да, это проверялось для WooCommerce 1.6 - для 2.0 вероятно работать не будет

вторник, 11 декабря 2012 г.

Imsanity - Wordpress Image Upload Resizer

Если дать пользователям  активно пользоваться Wordpress - тут же начинается бесконтрольная загрузка больших картинок по 4-5-6 мегабайт каждая.

Да, WP использует различные размеры картинок, но их ОРИГИНАЛЫ  остаются огромными, безумно расходуя дисковое пространство на сервере.

Погулив, наткнулся на кучу безумных советов и реплик, из которых "труъ" (с) вариантом оказался плагин Imsanity.

"Must have" (с), однозначно.

суббота, 24 ноября 2012 г.

Nginx accept() failed (24: Too many open files)

При достижения определенного уровня нагрузки на сайт Nginx начинает сыпать ошибками

2012/11/12 20:12:53 [alert] 5554#0: accept() failed (24: Too many open files) while accepting new connection on X.X.X.X:80

Диагноз

Диагноз, кстати -очевиден - слишком много открытых файлов

Лечение

Две строчки

1) в скрипт иницаилизации - например /etc/init.d/nginx

ulimit -n 65535

2) в конфиг nginx-  сразу после worker_processes

worker_rlimit_nofile 20480;

Рестарт.... и шерсть вашего любимца снова мягкая и шелковистая ;-) ;-)

четверг, 15 ноября 2012 г.

.htaccess -> nginx конвертор

"Must have" (с) -  я считаю

http://winginx.ru/htaccess

Сэкономили мне сегодня минут пятнадцать на настройку rewrite_rules. Но нужно обязательно проверять - мне например пришлось break; заменять на last;.

НО - Большое человеческое спасибо!

суббота, 13 октября 2012 г.

Как выставить chmod 664 файлам, а 775 каталогам?

Хронический склероз - как выставить всем файлам 664, а каталогам - 775.

find ./* \( -type d -exec chmod 775 '{}' \; \) , \( -type f -exec chmod 664 '{}' \; \)

Может хоть так запомню - в стиле ориентира - "лежит где-то там" (с). ;-)

Wordpress - Briefly unavailable for scheduled maintenance. Check back in a minute.

Если вдруг ваш обнаглевший Wordpress после попытки обновления начинает грязно ругаться матом в стиле

Briefly unavailable for scheduled maintenance. Check back in a minute.

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

Взлетели. ;-)

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

Как вывести массив из PHP в JSON без всяких UTF конвертаций?

Если нужно вывести кириллический массив в JSON для последующей обработки в Javascript, генерируя его посредством PHP, да еще и в Windows-1251 (без всяких UTF-8, encoding и прочего)  - да, да - "мсье знает толк в извращениях" (с) ;-) ,

то можно воспользоваться вот такой жуткой конструкцией.

function php2js($a=false)
{
  if (is_null($a)) return 'null';
  if ($a === false) return 'false';
  if ($a === true) return 'true';
  if (is_scalar($a))
  {
    if (is_float($a))
    {
      // Always use "." for floats.
      $a = str_replace(",", ".", strval($a));
    }

    // All scalars are converted to strings to avoid indeterminism.
    // PHP's "1" and 1 are equal for all PHP operators, but
    // JS's "1" and 1 are not. So if we pass "1" or 1 from the PHP backend,
    // we should get the same result in the JS frontend (string).
    // Character replacements for JSON.
    static $jsonReplaces = array(array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"'),
    array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'));
    return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';
  }
  $isList = true;
  for ($i = 0, reset($a); $i < count($a); $i++, next($a))
  {
    if (key($a) !== $i)
    {
      $isList = false;
      break;
    }
  }
  $result = array();
  if ($isList)
  {
    foreach ($a as $v) $result[] = php2js($v);
    return '[ ' . join(', ', $result) . ' ]';
  }
  else
  {
    foreach ($a as $k => $v) $result[] = php2js($k).': '.php2js($v);
    return '{ ' . join(', ', $result) . ' }';
  }
}

Страшно, да...  но работает ;-). "Костыли - это кошерно" (с)

Найдено в дебрях PHP.net

суббота, 8 сентября 2012 г.

MacOS X Lion: Finder съедает всю память

После обновления MacOS  X до Lion достаточно часто появляется странная проблема с Finder - без всяких видимых причин он начинает активно есть память, отъедая 1.5 и даже больше 2 Гб.

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

Решение

Обновить Dropbox. Так как у него нет автоматического обновления - старая версия может плохо работать на новой ОС.

В моем случае обновление было с версии 1.4.1 до 1.4.17 - помогло