Ярлыки

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

пятница, 28 января 2011 г.

upstart

upstart - подсистема загрузки.
Stanzas
getting started
launchpad
link

Ubuntu ускорение загрузки

link1
link2
link3
link4
link5
link6

Music

Cake - Mahna, Mahna
david hirschfelder

Скрипт spindown (остановка жестких дисков при простое)

link
link2

Ubuntu рисовалка для заметок.

Xournal рисовалка для быстрых заметок, листание страниц, экспорт в pdf и т.д.
источник

четверг, 27 января 2011 г.

hardware-monitoring в Ubuntu

1. Включение энергосбережения процессора.

Эта задача решается очень просто. Кликните правой кнопкой мыши на панели, выберите «Добавить на панель» и найдите в списке апплет «Монитор изменения частоты процессора».

2. Настройка мониторинга аппаратного обеспечения.

Устанавливаем: sudo apt-get install lm-sensors
Запускаем поиск имеющихся в вашем компьютере средств аппаратного мониторинга: sudo sensors-detect
Перезагружаем модули ядра: sudo /etc/init.d/module-init-tools
Теперь вы можете осуществлять мониторинг системы командой:
sensors
Но кроме этого, у вас теперь есть отличная возможность вывести на панель GNOME апплет с информацией о состоянии системы. Устанавливаем апплет: sudo apt-get install sensors-applet

3. Настройка контроля скорости кулера

После того как lm-sensors правильно сконфигурированы запустите pwmconfig и настройте скорость работы ваших вентиляторов: sudo pwmconfig

link

PHP преобразовать строку с разделителями в массив

array explode ( string separator, string string [, int limit] )

Возвращает массив строк, полученных разбиением строки string с использованием separator в качестве разделителя. Если передан аргумент limit передан, массив будет содержать максимум limit элементов, при этом последний элемент будет содержать остаток строки string.

Если separator - пустая строка (""), explode() возвращает FALSE. Если separator не содержится в string, то explode() возвращает массив, содержащий один элемент string.


link

Поиск коттеджа для аренды в Финляндии

хороший сайт для поиска коттеджей http://www.huvila.net/english.htm
связ по телефону или через e-mail
оплата по приезду..

среда, 26 января 2011 г.

PHP SimpleXml задать кодировку

$response = xmlrpc_server_call_method($srv, $xmlRequest, Null, array('encoding' => 'utf-8', 'escaping'=>'markup'));

link

Linux посмотреть переменные окружения

Посмотреть переменные окружения можно коммандой env или echo $ПЕРЕМЕННАЯ
Ниже приведены те переменные окружения, которые есть почти у всех пользователей Linux:
  • USER - имя текущего пользователя
  • HOME - путь к домашнему каталогу текущего пользователя
  • PATH - список каталогов, разделенных двоеточиями, в которых производится "поиск" программ
  • PWD - текущий каталог
  • OLDPWD - предыдущий текущий каталог
  • TERM - тип терминала
  • SHELL - текущая командная оболочка
Некоторые переменные окружения имеются не во всех системах, но все-таки требуют упоминания:
  • HOSTNAME - имя машины
  • QTDIR - расположение библиотеки QT
  • MAIL - почтовый ящик
  • LD_LIBRARY_PATH - место "поиска" дополнительных библиотек (см. предыдущую главу)
  • MANPATH - место поиска файлов man-страниц (каталоги, разделенные двоеточием)
  • LANG - язык и кодировка пользователя (иногда LANGUAGE)
  • DISPLAY - текущий дисплей в X11
Дополнительная информация тут.

Отключение энергосбережения экрана в Ubuntu

В xorg.conf в секцию Device добавляем
Option "DPMS" "Off"

проверка состояния xset -q

так же можно использовать комманду xset
xset +dpms вкл.
xset -dpms выкл.

можно передать параметры xinit
xinit --dpms

дополнительные ссылки:
link
link
link
link

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

воскресенье, 23 января 2011 г.

Films

Американский психопат rip

Home server

link
link2

суббота, 22 января 2011 г.

buisness book

forum
Дейл Карнеги «Ораторское искусство и оказание влияния на деловых партнеров»
Дейл Карнеги «Как выработать уверенность в себе и влиять на людей, выступая публично»
Роберт Кийосаки – Богатый папа, бедный папа
Роберт Кийосаки – Квадрант денежного потока
Наполеон Хилл - Думай и богатей 1 и 2
Стивен Кови - 7 Привычек Высокоэффективных Людей
Тим Феррис - 4часовая рабочая неделя
Дарьи Рейнер "7 фатальных ошибок начинающих бизнес-леди"
Генри Форд "Моя жизнь, мои достижения"(link)
Рей Крок "McDonalds"

пятница, 21 января 2011 г.

PHP array

link

link2

сенсорная панель KeeTouch

драйвер оказался глючным.. лучше использовать встроенный в ubuntu evtouch из пакета xserver-xorg-input-evtouch.

В файл /etc/udev/rules.d/69-touchscreen.rules добавляем строку:
    KERNEL=="event*", SYSFS{idVendor}=="1aad", SYMLINK+="input/ktusb"

xorg.conf
Долго искал что же надо крутить чтобы мышка не крутилась в левом верхнем углу не дальше квадратного сантиметра в углу. В результате крутит надо вот ети кардинаты
       Identifier  "kt"
       Driver             "evtouch"
       Option             "Device" "/dev/input/ktusb"
       Option             "DeviceName"     "KTUSB"
       Option "MinX" "1077"#"1932"
       Option "MinY" "333"#"862"
       Option "MaxX" "306"#"3378"
       Option "MaxY" "950"#"1914"
Это под мои 1280х1024
link
driver for ubuntu
talks
link

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

Subversion

link

Базовые команды

Извлекаем проекты

Вам необходимо знать URL компонентов, которые вы хотите извлечь. После этого Вы сможете сделать одно из следующих действий
svn checkout url
svn co url
Эти команды позволяют всё извлечь в директорию с именем по умолчанию. Например
svn checkout http://code.djangoproject.com/svn/django/trunk
Эта комманда извлечет django в директорию с названием trunk в текущей директории.
Вы так же можете указать название директории, в которую будeт извлечены файлы:
svn checkout http://code.djangoproject.com/svn/django/trunk django
Таким способом Вы извлечеты всё в директорию django

Svn Update и Revert

Svn update сливает изменения в репозитории и локальные изменения в коде, или показывает места, где возникли конфликты (конфликты показаны буквой C напротив файлов, который вы пытались обновить). Если кто-то другой закоммитил изменения в репозиторий и это не привело к конфликту с Вашей текущей версией, то svn update покажет G вместо C. Как бороться с конфликтами будет рассказано чуть ниже.
  • Чтобы обновить локальные файлы с изменениями, произведенными в репозитории, сделайте «svn update»
    svn update    ... 
    
  • Чтобы перезаписать локальные файлы файлами из репозитория, сделайте «svn revert» – это может быть нужно, если Вы хотите вернуться к версии файлов, лежащих в репозитории, при этом вы потеряете все изменения, которые Вы внесли в него с момента последнего коммита
    svn revert    ... 
    
Вы можете обновить всю директорию целиком, включая поддиректории, перейдя в нужную директорию и набрав:
svn update

Svn Diff

Заметьте, что diff не подключается к репозиторию! Он сравнивает ваши файлы с файлами, которые вы скачали, а не теми, что сейчас находятся в репозитории!
Чтобы узнать какие изменения вы делали с файлами наберите:
cd <Нужная директория>
svn diff 

Svn commit

Запустите svn diff чтобы увидеть какие изменения вы вносили в файл с момента последнего апдейта. Потом обновите файл svn up, запустите svn diff , и svn commit с сообщением:
svn diff 
Покажет вам изменения с последнего обновления.
svn update 
Эта комманда сольет изменения, внесенные в файл в репозитории с теми что внесли Вы. Ваши изменения имеют приоритет. Но могут возникнуть конфликты, если строки которые вы правили на Вашей машине были изменены в репозитории с вашего последнего апдейта.
svn diff 
diff покажет отличия между файлами: Вашим и тем что в репозитории. Убедитесь в том, что только новый код, который вы добавили это совокупность различий.
svn commit -m'Message' 
Message – это сообщение, которое пояснит какие правки вы вносили.
Чтобы производить действия над несколькими файлами, отделите их пробелами:
svn diff   
svn update   
svn diff   
svn commit - m "message"   

Добавляем новый файл в репозиторий

Как добавить новый файл в svn репозиторий
svn add 
svn commit -m "This new file will do something useful" 
Вы можете добавить несколько файлов
svn add   
svn commit -m "These new files work together to add some extra functionality"   

Удаляем файлы из репозитория

Чтобы удалить файл из репозитория, если вы не находитесь в рабочей копии
svn remove -m "I deleted this file for a reason" http://svn.greenstone.org/....../thefile.ext
Алиасы для svn remove : svn delete , svn rm. Вы не можете удалить несколько файлов из репозитория за 1 раз в одну строку

Полезные команды svn

svn info
svn switch
svn status
Если вы делаете svn status в директории, он рекурсивно выдаст список всех Модифицированных (M), Удаленных (D) и добавленных (A) файлов. Так же он покажет и список конфликтных файлов (C) и тех, о которых svn не имеет понятия (?). Чтобы увидеть изменения в каждом отдельном файле наберите
svn diff 
svn help
svn help [item]
svn help status
svn help commit

Конфликты svn и пути их решения

  • Когда вы делаете «svn status» в директории, в которой есть файлы помеченные C, это значит, что файлы конфликтуют с версиями в репозитории
  • svn update тоже может показать, что файлы конфликтуют. Если вы произвели svn up и один или несколько файлов имеют статус С – у Вас конфликт. Это значит, что пока вы работали над определенными строками(меняли их), кто-то уже успел внести изменения в эти же строки и сохранить их в репозитории. svn update не смог объединить код тк строки не совпали: строки конфликтуют.
Если Вы столкнулись с конфликтом и откроете конфликтующий файл в тестовом редакторе, то вы увидите, что конфликтующие линии помечены «=====» и «>>>>» Обе группы изменений, которые сделали Вы и те, что были внесены в репозитории будут встроены в файл со специальными маркерами. Если Вы сделали svn update с файлами, которые оказались конфликтующими ,то svn создаст несколько дополнительных файлов: conflict-filename.mine и confolict-filename. Первый -это Ваша локальная версия, содержащая все изменения, которые Вы внесли. Второй – Файл из репозитория.

Чтобы разрешить конфликт в файле, помеченном C

  1. Откройте конфликтный файл в редакторе
  2. Ищите вхождения «>>>>» или «====». Каждое такое вхождение указывает на конфликтную секцию, которую нужно решить.
  3. Разберитесь что делать с различающимися частями – какую оставить, какую убрать или как совместить их.
  4. Как только закончите редактирование, нужно поставить статус разрешенного конфликта!
svn resolved 
Если попробуете ещё раз набрать svn update, конфликта больше быть не должно.
 источник

PHP вызов xml-rpc медода на сервере

удобно для проверки работы xml-rpc

/* method implementation */
function impl($method_name,$params,$user_data){
var_dump(func_get_args('impl'));
return array_sum($params);
}

/* create server */
$s=xmlrpc_server_create();
xmlrpc_server_register_method($s,'add','impl');

/* calling server method */
//вызываем метод add с параметрами 1,2,3
$req=xmlrpc_encode_request('add',array(1,2,3));
//получаем отклик сразу передав array(3,4) в качестве параметра
$resp=xmlrpc_server_call_method($s,$req,array(3,4));

/* process result */
$decoded=xmlrpc_decode($resp);
if(xmlrpc_is_fault($decoded)){
echo 'fault!';
}

var_dump($decoded);
?>

PHP прочитать xml файл в массив

$xml = simplexml_load_file("файл XML");
echo "";
for ($i=0; $ievent);$i++) {
echo "
";
};
echo "
".$xml->event[$i]->Process_Name."".
$xml->event[$i]->Path."
".
$xml->event[$i]->Operation."
".
$xml->event[$i]->Result."
";

link1
link2
link3

PHP XML-RPC server

1. Определяем функции, которые будут доступны клиенту. Для примера напишем функцию сложения двух чисел:
function srvAdd($MethodName, $Params, $AppData)
{
return $Params[0]+$Params[1];
}
Любая функция, регистрируемая на xml-rpc сервере, должна принимать 3 параметра:

$MethodName - внешнее имя функции;
$Params - массив параметров, передаваемых клиентом;
$AppData - дополнительные параметры, передаваемые при вызове функции xmlrpc_server_call_method().

2. Создаем XML-RPC сервер вызовом функции

srv=xmlrpc_server_create();

3. Регистрируем на сервере, определенные ранее функции

xmlrpc_server_register_method($srv, "Add", "srvAdd");

Здесь:
Add - внешнее имя функции srvAdd,
srv - handler сервера.

4. Получаем "сырой" запрос от клиента

$xmlRequest = $HTTP_RAW_POST_DATA;

5. Передаем запрос в диспетчер функций, который автоматически определит какую функцию вызвать.

$response = xmlrpc_server_call_method($srv, $xmlRequest, Null);

Здесь:
$srv - handler xml-rpc сервера;
$xmlRequest - данные от клиента в xml-формате;
Третий параметр, в данном случае пустой, передает дополнительные данные для определенных ранее функций (параметр $AppData).

6. Отдаем клиенту результаты работы функции

print $response;

7. Закрываем сервер.

xmlrpc_server_destroy($srv);


Поместим файл с кодом xml-rpc сервера в защищенный каталог apache, чтобы к нему можно было коннесктится через SSL https://www.mydomain.ru/xmlrpcserver.php

источник

10 бесплатных редакторов для веб страниц

link

пятница, 14 января 2011 г.

PHP получить имя домена из URL

// Все возможные варианты параметров URL в одном
$url = 'http://username:password@www.hostname.tld/path?arg=value#anchor';

$parse = parse_url($url);

print_r($parse['host']); // вернет www.hostname.tld

//Короткий путь: Вернет только host
print_r(parse_url($url, PHP_URL_HOST)); // вернет www.hostname.tld

// небольшая функция-фильтр, которая очистит лишнее.
function getHost($Address) {
$parseUrl = parse_url(trim($Address));
return trim($parseUrl[host] ? $parseUrl[host] : array_shift(explode('/', $parseUrl[path], 2)));
}


link

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

Не удалось достоверно определить полное доменное имя севера, используя 127.0.0.1 для ServerName.

Потратил пол часа точно на исправление данной ошибки.
Вылечилось следующим образом:

1) sudo gedit /etc/apache2/httpd.conf

прописываем:

2) ServerName localhost

и перезагружаем сервер

sudo /etc/init.d/apache2 restart

link

четверг, 13 января 2011 г.

Current TimeStamp (UnixTime) in QT.

получение текущего времени в секундах с началы эпохи Unix.
int cur_time = QDateTime::currentMSecsSinceEpoch();
QString ct;
ct.setNum(cur_time,10);
qDebug() << "current time" << ct;
в qt после 4.7

link

среда, 12 января 2011 г.

Магазины автозапчастей для Гетца.

Итак, то, что известно на сегодня:
1. http://www.exist.ru - интернет-магазин автозапчастей. 6 магазинов в Питере.
2. http://www.spbkoreana.ru - специализация - запчасти на корейские машины. 19 магазинов. Есть свой сервис.
3. http://www.euroauto.ru - есть разборки иномарок и новые запчасти. Очень приличный сервисный центр по ремонту.
4. http://www.detali.ru/ офис на Чкаловском. Много неоргинала.
5. http://www.carumba.ru/ - 2 адреса в Питере. большой ассортимент, в том числе аксессуаров.
6. ул. Савушкина, д.24 (812) 430-72-22 / 973-17-90
Магазин занимается "французами", но сцепление Valeo на Гетц 1,6 (комплект) дешевле. Если обращаться в магазине к Кристине, то можно смело ссылаться на Гетц клуб, скидку обязательно предоставят!
7. Богатырский 14 сек 33 первый этаж т8911-264-21-04 Отдел в крупном автомобильном торговом центре. Занимается корейцами. Возможен заказ.

link

вторник, 11 января 2011 г.

QNetworkReply определить тип принимаемого сообщения.

QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkRequest request;
connect( &manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(quit()) );

request.setUrl( QUrl("http://www.my_site.ru/") );
QNetworkReply *reply = manager.get(request);
connect(reply,SIGNAL(finished()),this,SLOT(slot_finished()));

void slot_finished()
{
qDebug() << "content=" <<>header( QNetworkRequest::ContentTypeHeader);
}

QWebView Как использовать прокси.

webView->page()->networkAccessManager()->setProxy( QNetworkProxy( QNetworkProxy::HttpProxy, "192.168.100.254", 3128 ) );

webView->load( QUrl("http://www.asmforce.ucoz.ru") );

proxy.setHostName( "http://192.168.100.254" );

link

Символы и строки.

Непечатные символы:
\ - пробел
\n - перевод каретки на новую строку (прыжок на новую строку)
\r - перевод каретки в начало строки (прыжок в начало строки)
\t - знак продольной табуляции (невидимый пробел)

link

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

Сравнение потребления памяти различными браузерами.

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

Для сих целей был взят TOP-1000000 сайтов по версии Alexa, из него выбрано первые 120 и положены в файл links.txt. Затем товарищ Voker57 помог скриптом на Ruby, читавшим этот файл, запускавшим указанный браузер и после загрузки страницы грепавшим список процессов (ps aux) по соответствующему имени. Сумма значений в столбцах, соответствующих RSS, и считалась потреблением памяти соответствующего браузера. Таким образом, учитывалась многопроцессность Chromium'а и процесс operapluginwrap Оперы. Отдельно стоит отметить, что данные результаты, возможно, завышены на 10-15% по сравнению с тем, что ты, мой читатель, можешь увидеть в своем process manager'е.

Тестировались:

  • Arora 0.10.2-r1
  • Chromium (chromium-bin-5.0.376.0_p44230) (без аддонов)
  • Firefox 3.6.3 (без аддонов)
  • LeechCraft 0.3.65-830-g57e30dc (полный боекомплект)
  • Midori 0.2.4
  • Opera 10.10-r1 (более свежие версии неработоспособны вообще) (без всяких довесков)
  • Rekonq 0.4.0
  • uzbl 2010.04.03 (без скриптов, поставка по умолчанию)

Конфигурация «тестового стенда»:

  • CPU: Core 2 Duo P8700 (2.53 GHz)
  • RAM: 4 GB DDRII
  • GPU: nVidia GTX240M (nvidia-drivers-195.36.15)
  • ОС: Gentoo Unstable AMD64
  • Ядро: gentoo-sources-2.6.32-r2
  • Qt: 4.6.9999 от 23 апреля с kde-patches
  • DE: KDE 4.4 со стилем Bespin и включенными красивостями, весьма требовательными к OpenGL.
  • Webkit-gtk: 1.1.15.4
  • CFLAGS="-O2 -march=core2 -pipe -floop-interchange -floop-strip-mine -floop-block -fomit-frame-pointer -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1"
    LDFLAGS="-Wl,-O1 -Wl,--as-needed"

Я также попытался протестировать Konqueror, но не смог заставить его открывать URL'ы в одном и том же окне.

Во всех браузерах использовались настройки по умолчанию.

Arora

Так получилось, что тестирование браузеров началось именно с Arora (на нем отлаживался соответствующий скрипт). Никаких особых замечаний нет, вполне вменяемо. Росло себе потребление памяти и росло, между вкладками переключаться можно было, особого замедления при большом количестве вкладок заметно не было. 400 мегабайт оперативки занято на 50-ой вкладке.

Chromium

Хромиум реактивен, засранец, хоть и -bin. Однако, также реактивно засирает оперативную память: чтобы занять гиг оперативки, ему потребовалось всего 22 вкладки. Зато, что странно (ну или забавно) на уровне 2500-2600 мегабайт потребление памяти почти перестало расти. Также, при большом количестве вкладок невозможно перемещаться между ними: на табах перестали быть видны фавиконки, а затем таббар и вовсе наехал на кнопки закрытия/сворачивания. Как следствие невидимых фавиконок, невозможно понять, загружена текущая страница, или нужно еще подождать. Но хромиум все равно реактивен, стоило нажать и зажать Сtrl+W, как все открытые вкладки довольно шустро закрылись. Причем, все работает не только шустро, но и гладко.

Firefox

С ростом количества вкладок начало все тормознее и тормознее перерисовываться окошко. Но вкладки тоже быстро закрылись. 400 мегабайт за 42 что ли вкладки. Что еще сказать? Да нечего, файрфокс все знают, хехе.

Кстати, Firefox адски течет. Даже с одной вкладкой с GMail'ом он за пару часов разрастается от милой стомегабайтной программы в трехсотметрового монстра.

LeechCraft

Личкрафтам я уделю несколько особое внимание, не зря же я их девелопер :) В частности, протестированы несколько различных конфигураций потребления памяти: дефолтовая и минимальная. 400 метров в дефолтовой тоже на 42-ой вкладке. Причем, личкрафтам было весьма пофиг на количество открытых вкладок — можно было спокойно переключаться между ними, особенно с помощью Tab++. После открытия 120 вкладок «Закрыть все кроме этой» отработало секунд за 5.

Другая конфигурация потребления памяти — с увеличенными вдвое кешами. При небольшом количестве вкладок потребление памяти выше на несколько десятков мегабайт, однако, начиная примерно с 80-ого сайта, конфигурация с увеличенным кешем потребляет даже меньше памяти.

При этом были запущены все доступные (и более-менее рабочие) на сегодняшний день плагины, от торрентов и новостной читалки до DC-клиента. Полный боевой комплект, заранее ставящий личкрафт в чуть более худшее положение. Однако, это не помешало уступить лишь Arora.

Midori

Выглядит он страшно, конечно, да и после четвертого десятка вкладок стали заметны тормоза перерисовки. На 56-ую вкладку рендеринга окна я дожидался где-то минуту. Не дождался, убил, так что Midori дисквалифицирован.

Opera

Ой, какой ужас, какой ужас. Жрет память она почти как хром, выглядит уродливо, поломан диалог сохранения файлов... Впрочем, куда-то я не туда пошел. Так вот, опера на достаточно большом количестве вкладок (70-80) стала ужасно тормозить, процесс operapluginwrap кушал 100% одного ядра, основной opera стабильно ел 60-70% другого. Переключение вкладок занимало десяток-другой секунд, а после 108 вкладок Opera вообще перестала реагировать на какие-либо действия, посему она и была дисквалифицирована. Закрытие всех вкладок кроме активной (после открытия 108) затянулась минуты на три. Однако, надо признать, при небольшом количестве вкладок она ведет себя вполне достойно и, вообще говоря, при 1-2 открытых сайтах потребляет меньше всех памяти, что легко видеть из первого графика.

Rekonq

Ничотак. Странные колебания потребления памяти в районе 400-600 метров. Еще обнаружился забавный глюк: начиная этак с 70-ой вкладки для того, чтобы процесс загрузки и рендеринга шел, нужно либо двигать мышкой над окном реконка, либо перемещать туда-сюда фокус. 400 метров за 9 вкладок. После открытия 120 вкладок при нажатии и удержании Ctrl+W они стали весьма шустро закрываться обратно, но счастье длилось недолго: упал реконк.

uzbl

Стало интересно, как будет вести себя браузер, вроде как и минималистичный, но в то же время на вебките. В общем, 400 метров он за 5 вкладок съел, вот. Ну и вообще довольно жадный. На 57 вкладке у меня кончилась свободная оперативка, я решил не баловаться со свопом и прибил его. Disqualified. Несмотря на это, uzbl все же был довольно отзывчив (пока не начал подбираться к пределу ОЗУ). Не хромиум, конечно, но по сравнению с оперой — ракета.

Выводы

А глобального вывода нет. Все зависит от стиля работы в интернете. Если ты любишь держать не больше дюжины вкладок, то не особо важно, каким именно браузером ты пользуешься: главное, чтобы было удобно/привычно/etc. Разве что, пожалуй, уж точно не стоит пытаться использовать Rekonq: он потребляет ощутимо больше памяти, чем другие, сравнимо с Chromium, а какая выгода от него — непонятно.

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

Если же у тебя нередко открыто более сотни страниц, то Chromium и, уж тем более, Opera (за счет ее тормозов, хоть и ест меньше) — не вариант. Midori отпадает еще на полсотне вкладок с тормозами прорисовки, несмотря на весьма разумное потребление памяти. Как ни странно, остаются Arora и LeechCraft. Еще есть Firefox, но Gecko течет чуть сильнее (вместе со всеми огнелисовскими дополнениями и обвязками вокруг него, типа XUL), чем Webkit. Не буду отрицать, что Webkit еще есть, где пилить и доводить до ума, поэтому иногда Firefox — единственный вариант.

А uzbl ни в какие ворота не лезет во всех случаях.

источник

воскресенье, 9 января 2011 г.

Теплозащитная прозрачная пленка.

Главное преимущество теплоотражающих пленок "Solartek ULTRA" и "Llumar AIR 75 SR HPR" в том, что при превосходной защите от солнечных лучей они прозрачны. Поэтому могут использоваться для тонирования передних стекол и даже лобового стекла.
Новейшие технологии в производстве пленок позволяют добиваться 98% отражения ультрафиолетовых лучей и 60% отражения солнечного тепла. Эффективность теплоотражающего покрытия пленок так высока, что даже при длительном движении автомобиля под палящими солнечными лучами водитель и пассажиры не испытывают неудобств.

ОПТИЧЕСКИЕ ХАРАКТЕРИСТИКИ:

  • прохождение видимого света 75 %
  • отражение ИК-излучения 61 %
  • отражение видимого света 10 %
  • отражение ультрафиолета 98 %
link
установка

пятница, 7 января 2011 г.

Подсветка синтаксиса в Blogger.

http://progmanist.blogspot.com/2010/09/bloggercom_3210.html
http://softwaremaniacs.org/soft/highlight/
http://alexgorbatchev.com/SyntaxHighlighter/

Qt вывод в консоль.

в pro-файл добавить строку:
GONFIG +=console


qDebug() << "Hello world";
QString s = "aaabbcc";
QTextStream out(stdout);
out << "Hello World" << out << flush;

link

четверг, 6 января 2011 г.