воскресенье, 5 декабря 2010 г.

Завел себе КотЭ

Вот такая вот Муська.

 
любимая игрушка - пивная пробка  :)

вторник, 7 сентября 2010 г.

Python range vs xrange

В Python существуют две, аналогичные с виду фунцкции: range и xrange, которые часто используются в циклах for. Обе они имеют сходный синтаксис:
range(start,stop,step) или xeange(start,stop,range). Где start,stop и step соответственно: начальное, конечное значения и шаг. Однако, если range возвращает список значений (list), xrange возвращает объект, что более эффективно использует память и более производительно в циклах.

Вот пример скрипта, демонстрирующий разницу в производительности (для сравнения еще и цикл while):

#!/usr/bin/python

def test_range(rng):
    for i in range(rng): pass

def test_xrange(rng):
    for i in xrange(rng): pass

def test_while(rng):
    i=0
    while i<=rng:
        i=i+1

if __name__=='__main__':
    from timeit import Timer
    testing_range=(100,1000,10000,100000,1000000,4000000)
    print "%7s %10s %16s %16s"%('Size','Range','XRange','While')
    for rng in testing_range:
        t_range=Timer('test_range(%i)'%rng,'from __main__ import\ test_range').timeit(number=1)*1000000
        t_xrange=Timer('test_xrange(%i)'%rng,'from __main__ import\ test_xrange').timeit(number=1)*1000000
        t_while=Timer('test_while(%i)'%rng,'from __main__ import\ test_while').timeit(number=1)*1000000
        print "%7d\t %9.2f\t %9.2f\t %9.2f\t"%(rng,t_range,t_xrange,t_while)


И вот резальтат вывода:
 Size      Range           XRange            While
    100         17.17         10.97         20.98    
   1000         82.97         59.84        221.97    
  10000       1345.16        559.09       2100.94    
 100000       9470.94       5361.08      18620.01    
1000000     100019.93      57285.07     189877.99    
4000000     389897.11     237751.96     779174.09

четверг, 11 марта 2010 г.

vmware server и Firefox 3.6

Досадная особенность - VMware Server 2 "не дружит" с 3.6 "лисом".
Кое-никакое решение этой проблемы следующее:
Включить в FF поддержку SSL v.2: about:config security.enable_ssl2 = true. Теперь есть доступ к интерфейсу управления, но консоль все равно не стартует. Зато можно её запустить ярлычком с десктопа.

четверг, 25 февраля 2010 г.

"Тормоза" VMWARE Server 2 на Linux хосте

После установки со значениями по умолчанию в VMWARE Server 2.0.2 Build 203138 на Linux хосте есть проблемы с производительностью гостевых систем с объемом памяти >512Мб.
Исправить проблему помогло следующее:
Установить в /proc/sys/vm следующие значения параметров:
swappiness = 0
overcommit_memory = 0
dirty_background_ratio = 2
dirty_ratio = 100
dirty_expire_centisecs = 9000
dirty_writeback_centisecs = 3000

Полностью описание здесь

вторник, 13 октября 2009 г.

Музычки

Залил себе в проигрыватель Rammstein образца 2009 года, альбом Liebe Ist Fur Alle Da.
Определённо доказывают чуваки, что и для звуковоспроизведения тяжёлой музыки нужен талант.

среда, 7 октября 2009 г.

"Проброс" USB устройств в VMware Server 2 на Debian Lenny

Для того, что бы гостевая ОС в VMWARE Server 2 видела подключенные USB устройства хоста (Debian Lenny) в /etc/init.d/mountkernfs.sh поправить запись:

domount usbfs usbdevfs /proc/bus/usb usbfs -onodev,noexec,nosuid,devgid=1001,devmode=664

вторник, 15 сентября 2009 г.

Отожгли.

четверг, 3 сентября 2009 г.

четверг, 2 июля 2009 г.

пятница, 26 июня 2009 г.

Офисно-планктонное

четверг, 14 мая 2009 г.

Python, Tkinter и развернутое на весь экран окно

Как сделать главное окно Tkinter развернутым на весь экран при запуске приложения (касательно Linux):
from Tkinter import *
root=Tk()
frame=Frame(height=root.winfo_screenheight(),width=root.winfo_screenwidth())
frame.pack()
root.mainloop()

четверг, 12 марта 2009 г.

Настройка aptitude для работы через proxy и список обхода

Возникала необходимость загрузки пакетов Debian с зеркала, которое находится в нете. Используется прокси сервер. Основное зеркало находится в локальной сети.
Для этого в /etc/apt/apt.conf надо дописать:
ACQUIRE {
http::Proxy "http://myproxy.mydmain.com:3128";
http::Proxy::localmirror.mydomain.com "DIRECT";
};
Т.е. на localmirror будет ходить напрямую. На все остальные через проксю.

четверг, 12 февраля 2009 г.

Семь драконов, мешаюших жить в гармонии с миром

Алчность, высокомерие, нетерпеливость, упрямство, самоуничижение, склонность к мученичеству и саморазрушению - так зовут этих драконов, по мнению Хосе Стивенса.

четверг, 5 февраля 2009 г.

Perl/Tk. Передача параметров по цепочке процедур.

У меня возникла необходимость в передаче объекта Perl/Tk в качестве параметра процедуры, для дальнейшего создания его дочерних объектов (элементов интерфейса) внутри этой процедуры.
Сначала напишем простой код:
#! /usr/bin/perl
use strict;
use Tk;
my $mw=new MainWindow;
print $mw;
После запуска видим следующий вывод:
MainWindow=HASH(0x9acfcc0)
Теперь создадим процедуру создания кнопки для дочернего окна:
sub create_button {
my $mw=shift; #Получаем переданный параметр
print $mw;
}
Если теперь вызвать эту процедуру из main::
...
create_button($mw); #mw - созданный MainWindow
...
То получим вывод:
REF(0x9da0340)
Т.е. получаем ссылку. Для того, что бы можно было создавать дочерние объекты с переданной в качестве аргумента ссылкой на родительский объект, ее нужно разыменовать.
$$mw->Button(-text=>'button')->pack();

Подробнее о ссылках и разыменовании ссылок perl.

четверг, 8 января 2009 г.

2009 наступил, праздники прошли

Собственно, забросил на некоторое время блог.
Наступил 2009 год, пришел так называемый кризис.
Ко всему прочему я еще и приболел. Что ж, найду время и настроение проанализировать прошедший период, выделить ключевые (для меня) события, и начать строить планы на 2009.

четверг, 13 ноября 2008 г.

Из книги "Выходные с пьяным лепреконом, или Как найти свою радость?"

"Наблюдай лишь за тем,
Что желаешь иметь,
Кем хочешь быть,
Чего хочешь достигнуть.
Тогда лишь в это и будешь вовлечен.
Так говорят".
Клаус Дж. Джоул

пятница, 24 октября 2008 г.

Интересный факт

В книге Анатолия Шевырёва прочитал интересный факт, IQ Мадонны (Луизы Чикконе) выше чем у Дж. Ф. Кеннеди.

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

пятница, 10 октября 2008 г.

Неплохо замечено

Почти все наши неудачи являются следствием наших ошибочных представлений о том, что с нами происходит. Соответственно, более глубокое понимание человека, разумная оценка событий являются огромным шагом к счастью.
(Стендаль, Дневник (10 декабря 1801 года)