Последние Записи.

Основы emacs (внешняя ссылка)

После поисков редактора питоновских скриптов я прошустил довольно много, спрашивал, читал, изучал. Мне не нужен был ни Eclipse ни IDEA. Для моего домашнего ноута честно признатся таких монстров вообще не нужно.

В итоге остановился на emacs. Сейчас читаю классную статью, которую, если вы так же как и я решили перейти на emacs, можете прочитать вот

Кстати под Mac OS X есть отличная обертка над emacs Aquamacs

Вызов конструктора родительского класса

Христос Воскрес!

Воистину все постигается в чтении умных книг. Буквально недавно сообразил, какую возможно грубейшую ошибку мы совершили в создании одного приложения на Python. Мы использовали для вызова методов родительского класса super.

Пример:

  1. class B:
  2.  
  3.     def __init__(x, y):
  4.         self.x = x
  5.         self.y = y
  6.  
  7.     def setX(x):
  8.         self.x = x
  9.  
  10.  
  11. class A(B):
  12.     def __init__(x, y, r):
  13.         super(A, self).__init__(x, y)
  14.         self.r = r
  15.  
  16.     def setX(x):
  17.         super(A, self).setX(x + self.r)

А теперь посмотрим как было бы правильнее

  1. class B:
  2.  
  3.     def __init__(self, x, y):
  4.         self.x = x
  5.         self.y = y
  6.  
  7.     def setX(self, x):
  8.         self.x = x
  9.  
  10.  
  11. class A(B):
  12.     def __init__(self, x, y, r):
  13.         B.__init__(self, x, y)
  14.         self.r = r
  15.  
  16.     def setX(self, x):
  17.         B.setX(self, x + self.r)

Загрузка файлов на сервер

В последнее время перешел с GUI аплоада на утилиту rsync. А что? Очень даже удобно если набросать для проекта скрипт обновления. Но в простом случае я просто делаю что то вроде этого

rsync ~/workspace/example.php username@example.com:/var/www/example.com

Но можно и все содержимое каталога

rsync -r ~/workspace/* username@example.com:/var/www/example.com

Переход с Python 2.5 на Python 2.6

Решили перевести наш сервер на версию Python 2.6. Замечу что до этого использовали 2.5, что как оказалось является довольно устаревшей. Ну решили – начал переводить.

Казалось бы что сложного, но Gentoo всячески отказывалась принимать версию из-за того что она была замаскирована. Что это означает я даже не подозреваю, поэтому раз через emerge не хотела, то решил просто собрать исходники.

Скачал необходимую версию питона, скомпилил – все отлично, осталось перевести ссылку python и python-config на новую версию.

# rm /usr/bin/python /usr/bin/python-config
# ln -s /usr/local/bin/python2.6 /usr/bin/python
# ln -s /usr/local/bin/python2.6-config /usr/bin/python-config

Все отличненько и

# python --version

вернула 2.6.2, осталось пересобрать mod_python, чтобы он использовал обновленный питон. Сделал через обычный emerge.

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

Перевод Drupal на BigStreet

Была поставлена задача перевести существующую базу с Drupal’а на BigStreet. Скажу сразу что скрипт писался исключительно в личных целях и на скорую руку.

Скрипт генерирует необходимые SQL запросы для их выполнения над базой BigStreet. Будьте осторожны в плане того что он не смотрит какие id у вас уже есть в существующей базе и некоторые запросы просто выдадут ошибку.

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

Ну и собственно сам скрипт можно взять отсюда.

Скрипт можно выполнять через командную строку перенаправив вывод в отдельный файл.

Диверсанты

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

После поднятия NAT на Gentoo Linux, самым неведомым образом стал пропадать интернет, стал шурстить и дошурстил google до дырок. С сетевого адреса через утилиту arping удалось выявить виновника такого поведения, звонок в службу поддержки и выдача чужого MAC адреса поставила точку на наших бедах (ох надеюсь что это так)

Итак, если у вас пропадает интернет и появляется только после рестарта интерфейса, то будьте готовы что кто то использует ваш IP.

Исключительно эта ситуация касается только для выделенных внешних IP.

ТвинБот

Этот робот стал моим кумиром)

Что он делает один в парке читать тут

Музей народной архитектуры

Был на этих выходных в Пирогово, это под Киевом, место довольно красивое. Смотрел на дома от 17 до 20 столетия. И ведь еще простоят много лет и даже жить в некоторых можно.

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

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

Шизофреник

Насколько простым и гениальным может быть лого? А вот я вам скажу) Лично мне оно понравилось

А вот собсно место, откуда чесно взял.

hasattr и __dict__

Заметил что hasattr в коей мере некорректно работает на определение наличия аттрибута в классе, пришлось отказаться от него и использовать такую проверку

  1. if "value" not in MyClass.__dict__:
  2.     pass

Какие минусы этого подхода полностью не знаю, но знаю что может привести в определенных ситуациях к зацикливанию, это в случае если использовать __setattr__ в паре с ним. Может у кого-то другие подходы? Или просвятит на предмет использования __dict__ :-)