Ярлыки

вторник, 29 марта 2011 г.

Ubuntu Аппаратное ускорение/обработка FLASH-видео

1. Скачиваем и устанавливаем Adobe Flash Player 10.2 (x32), и устанавливаем, копируя в папку: /usr/lib/flashplugin-installer/ или /usr/lib/adobe-flashplugin/ в зависимости от того, установлен ли уже Flash Player в системе или нет.
2.Устанавливаем библиотеку libvdpau1:

sudo apt-get install libvdpau1


 


link 

C++ Чтение файла построчно

#include 
#include 
#include 

using namespace std;

int main()
{
     string line;
     ifstream file("hello.world");
     
     getline(file,line);
     cout << line;
}
link

понедельник, 28 марта 2011 г.

Qt Ошибка «undefined reference to vtable»

Программируя на Qt и время от времени проверяя форумы, приходится наблюдать, что программисты часто борятся с сообщениями вида «undefined reference to vtable».
Попробую описать ситуации, когда может возникнуть данная ошибка, и дать несколько советов, как избежать её.
Чаще всего данное сообщение всплывает, если вы используете MOC.
MOC (Meta-Object Compiler, переводится как Метаобъектная система/компилятор) – механизм, который расширяет синтаксис C++.
MOC:
  • необходим для механизма сигналов-слотов;
  • позволяет программисту получать метаинформацию о подклассах QObject (QObject::metaObject());
  • используется для интернационализации приложений (QObject::tr());
  • содержит в себе полезные расширения синтаксиса C++.
MOC компилятор находит и обрабатывает все заголовочные проекта.
При появлении ошибки «undefined reference to vtable», первым делом очистите проект и пересоберите его, не забыв запустить qmake:
make clean
# удалите вручную все moc-файлы, если они остались после выполнения make clean
rm Makefile
qmake
make

Если ошибка не исчезла, то проверьте файл проекта (*.pro). Проверьте, чтобы все необходимые заголовочные файлы (включающие сигналы и слоты особенно) были включены в проект. Список заголовочных файлов должен содержаться в переменной HEADERS:
HEADERS += firstHeaderFile.h \
otherHeaderFile.h \
secondHeaderFile.h

Если вы используете в проекте папку, содержащую заголовочные файлы, убедитесь, что добавили эту папку в переменную INCLUDEPATH:
INCLUDEPATH += ./include
Если обнаружили забытый h-, hpp-файл – пересоберите проект заново.
Проблема осталась? Тогда ещё варианты:
  1. Загляните в c-, cpp-файлы и убедитесь, что классы там не определяются. MOC разбирает только заголовочные файлы;
  2. Каждый класс, который имеет сигналы или слоты должен наследоваться от QObject, напрямую или нет.
    В начале определения таких классов обязательно должнен стоять макрос Q_OBJECT, к примеру:class MyWidget : public QWidget
    {
    Q_OBJECT
    /* класс наследуется от QWidget, а значит и от QObject,
    * следовательно должен содержать макрос Q_OBJECT.
    * Если класс наследуется от QObject, но не содержит сигналов или слотов,
    * то не обязательно включать макрос в описание класса.
    */
    ...
    }
  3. Ещё одна вещь, которую можно проверить.
    Удалите Makefile и посмотрите, что выдаст qmake в Makefile:

    rm Makefile
    qmake

    Откройте Makefile редактором и найдите следующие строки:

    compiler_moc_header_make_all:
    и
    compiler_moc_header_clean:

    Например, в моем Makefile есть:mocclean: compiler_moc_header_clean compiler_moc_source_clean
    mocables: compiler_moc_header_make_all compiler_moc_source_make_all

    compiler_moc_header_make_all:
    release/moc_mainwindow.cpp release/moc_SystemConfiguration.cpp release/moc_InstrumentConfiguration.cpp release/moc_ModuleConfiguration.cpp release/moc_ChannelConfiguration.cpp
    compiler_moc_header_clean:
    -$(DEL_FILE) release\moc_mainwindow.cpp release\moc_SystemConfiguration.cpp release\moc_InstrumentConfiguration.cpp release\moc_ModuleConfiguration.cpp release\moc_ChannelConfiguration.cpp

    Каждый заголовочный файл, содержащийся в проекте и
    нуждающийся в обработке MOC-компилятора, должен находиться в этих строках.
    Имя файла будет начинаться с прифекса «moc_».
    Проверьте, что в список включены все h-файлы (точнее, только те, которые требуют обработку MOC-компилятором).
    Если Вы не обнаружили какой-либо moc-файл, не спешите править руками Makefile,
    просто подправьте pro-файл нужным образом.
    Если файл проекта правилен, то qmake генерирует правильный Makefile.
link

суббота, 26 марта 2011 г.

Ubuntu настройка сети

/etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
 
# The primary network interface
auto eth0
iface eth0 inet static
        address 10.2.10.32
        #hwaddress ether 12:34:56:78:90:12
        netmask 255.255.255.0
        network 10.2.10.0
        broadcast 10.2.10.255
        gateway 10.2.10.1
        dns-nameservers 212.212.45.174
 
 
# The secondary network interface
auto eth1
iface eth1 inet static
       address 192.168.140.1
       netmask 255.255.255.0
link 

Ubuntu настройка DHCP сервера

Устанавливаем пакет
sudo apt-get install dhcp3-server
редактируем конфиг /etc/dhcp3/dhcpd.conf
если сервер работает только на локальную сеть редактируем /etc/default/dhcp3-server
 
link  

Ubuntu установка EiskaltDC++

EiskaltDC++ программа для обмена в p2p сетях.

sudo add-apt-repository ppa:tehnick/tehnick
sudo apt-get update
sudo apt-get install eiskaltdcpp
 
link  

пятница, 25 марта 2011 г.

cURL игнорирование сертификатов в https соединении

В php: curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);
В коммандной строке: используя ключ -k/--insecure
 
link 

четверг, 24 марта 2011 г.

Ubuntu Подключение к удаленному рабочему столу

vnc
rdp
http://forum.ubuntu.ru/index.php?topic=110337.0
http://ubuntologia.ru/forum/viewtopic.php?f=93&t=340
http://nuclear-imaging.info/site_content/2010/04/19/vnc-server-setup-for-ubuntu-10-04-lucid-lynx/
http://linuxsoid.blogspot.com/2009/08/ubuntulinux-windows.html

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

\t - горизонтальная табуляция (HT или 0x09 (9) в ASCII)

link

PHP Вставить n символов в строку

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

есть еще str_pad link

Ubuntu How To Install EiskaltDC++

Add the PPA with the command:
sudo add-apt-repository ppa:tehnick/tehnick
Update the program list with the command:
sudo apt-get update
Finally, install EiskaltDC++ with the command:
For stable version:
sudo apt-get install eiskaltdcpp
For unstable version:
sudo apt-get install eiskaltdcpp-unstable
 
link 

среда, 23 марта 2011 г.

PHP. Сохранение массива в файл

$fp=fopen('tmp','w');
if($fp)
{
    fwrite($fp,"\$_array=>array(\r\n");
    array_to_file($res_obj,1,$fp);
    fwrite($fp,")\r\n");
    fclose($fp);
}

//на входе массив, количество отступов, и файловый дескриптор  
function array_to_file($arr,$i,$fp)
{
//устанавливаем отступ
    $tab = str_repeat("\t",$i);
    foreach($arr as $key => $val)
    {
        if(is_array($val))
        {
            $tmp = "$tab'$key'=>array(\r\n";
            fwrite($fp,$tmp);
            array_to_file($val,++$i,$fp);
            if( next($arr) === false) $com = '';
            else $com = ',';
            fwrite($fp,"$tab)$com\r\n");
        }
        else
        {
            if( next($arr) === false) $com = '';
            else $com = ',';
            fwrite($fp,"$tab'$key'=>'$val'$com\r\n");
        }
    }   
}   

такие массивы удобно использовать используя include(array_file.inc);
важно помнить что область видимости ограниченна фигурными скобками

http://it.nittis.ru/php-save-array-as-file.html

вторник, 22 марта 2011 г.

Ubuntu Сочетания клавиш (shortcuts)

http://forum.ubuntu.ru/index.php?topic=32541.0

Qt полноэкранное приложение

    MainWindow w;
//    w.setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint | Qt::SubWindow);
//    w.showFullScreen();
link
link

Установка Qt SDK на Ubuntu

http://sergiig.wordpress.com/2009/07/21/install-qt-sdk-on-ubuntu/

QtCreator собрать проект статически

в pro файле написать
CONFIG += static

link

Qt воспроизведение swf

http://www.prog.org.ru/topic_15531_0.html
http://www.qtcentre.org/threads/20531-qt-and-swf-object

Ошибка компиляции 'undefined reference to `vtable for Class'

Вопрос:
Как исправить 'undefined reference to `vtable for Class'?
Ответ:
Реализовать для 'Class' все виртуальные методы, и не грешить на конструкторы, MOC или g++.

ИЛИ

В родительском классе объявить виртуальные методы чистыми виртуальным, то есть сделать родительский класс абстрактным.


ИЛИ

Скорее правильнее, реализовать все виртуальные функции которые не  объявлены чистыми виртуальными в родительском или объявить их таковыми.
 

Firefox плагин для киоска

https://addons.mozilla.org/en-US/firefox/addon/r-kiosk/

http://qnub.lost-team.org/2009/10/firefox-kiosk-mode.html

http://www.kubuntu.ru/node/5682

Qt установка. Ошибка configure

Если configure выводит ошибку:
Basic XLib functionality test failed!
 You might need to modify the include and library search paths by editing
 QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /home/wag/Dist/Src/qt-x11-opensource-src-4.5.1/mkspecs/linux-g++


необходимо установить libxext-dev

link 
link 

пятница, 18 марта 2011 г.

GRUB

http://www.ubuntologia.ru/grub2-settings-file

http://forum.ubuntu.ru/?topic=74165.0

Ubuntu астраиваем вид апплета часов

http://www.bubuntu.spb.ru/customize-the-clock-applet/

Sh

http://house.hcn-strela.ru/BSDCert/BSDA-course/ch07s07.html#3.7.7-sh-var

http://nicwiki.im/index.php/Sh_script

Bash

http://ss64.com/bash/

http://www.nixp.ru/forum/%D0%9A%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B/Bash-If-then

http://www.opennet.ru/openforum/vsluhforumID1/9933.html

http://www.linuxconfig.org/bash-scripting-tutorial#9-bash-if--else--fi-statements

http://poplinux.ru/adv-bash/chapter-8.1.html

Ubuntu System V init.d

http://rus-linux.net/nlib.php?name=/MyLDP/BOOKS/ubuntu_hacks_ru/ubuntuhack77.html

http://linux.yaroslavl.ru/docs/setup/mandrake/cl/sysv-levels.html

http://meandubuntu.ru/2009/08/%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82-%D0%B0%D0%B2%D1%82%D0%BE%D1%81%D1%82%D0%B0%D1%80%D1%82%D0%B0-%D0%B2-ubuntu/

Ubuntu Шпаргалка по командам

http://silverghost.org.ua/2009/06/02/shpargalka-po-komandam-v-ubuntu-obraznyx-distributivax/

Ubuntu флаги для индикатора раскладки клавиатуры

mkdir -p ~/.icons/flags
cd ~/.icons/flags
wget http://zeroed.ru/xlam/files/gnome/lookandfeel/flags/{ru,us}.svg
картинки могут быть  png или svg размером 48*48 и менее

gconftool-2 --type bool --set /desktop/gnome/peripherals/keyboard/indicator/showFlags true


 


http://ubuntologia.ru/gnome-applets 


http://forum.ubuntu.ru/index.php?topic=84817.0 

четверг, 17 марта 2011 г.

Qt Взаимодействие нитей(thread)

class MyObject : public QObject
{
    Q_OBJECTpublic slots:
    void MySlot( void )
    {
        std::cout << "slot called" << std::endl;
    }
};
class CThread1 : public QThread
{
    Q_OBJECTpublic:
    void run( void )
    {
        std::cout << "thread 1 started" << std::endl;
        int i = 0;
        while(1)
        {
           msleep( 200 );
           i++;
           if(i==1000)
              emit MySignal();
        }
    }
signals:
    void MySignal( void );
};
class CThread2 : public QThread
{
    Q_OBJECTpublic:
    void run( void )
    {
        std::cout << "thread 2 started" << std::endl;
        exec();
    }
};
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    CThread1 oThread1;
    CThread2 oThread2;
    MyObject myObject;
    QObject::connect( & oThread1, SIGNAL( MySignal() ),
        & myObject, SLOT( MySlot() ) );
    oThread2.start();
    myObject.moveToThread(&oThread2)
    oThread1.start();
    return a.exec();
}
 
link 

Правила оформления программного кода

http://www.yukosh.ru/library/rules/

C++ Coding Standard

http://www.possibility.com/Cpp/CppCodingStandard.html#snames

С++ Оформление константных значений в классах

class MyClass {
//.................
public:
static const int n = 5;
//.................
};
int a[MyClass::n];
 

http://forum.codenet.ru/archive/index.php/t-50605.html

среда, 16 марта 2011 г.

Qt Убить поток

http://www.prog.org.ru/topic_16128_15.html

http://www.rsdn.ru/forum/cpp.qt/3387749.all.aspx

http://www.prog.org.ru/topic_5308_0.html

http://www.forum.crossplatform.ru/index.php?showtopic=4860

http://hghltd.yandex.net/yandbtm?fmode=inject&url=http%3A%2F%2Fforum.vingrad.ru%2Fforum%2Ftopic-297581.html&text=qthread%20%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%82%D1%8C%20%D1%83%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%20%D0%BD%D0%B0%20%D1%80%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8F&l10n=ru&sign=11e597438e66f79218feb8b392b6bdc2&keyno=0

http://www.forum.crossplatform.ru/lofiversion/index.php/t1615.html

http://stackoverflow.com/questions/1898636/how-can-i-terminate-a-qthread

http://forum.vingrad.ru/forum/topic-200719.html

Qt QObject: Cannot create children for a parent that is in a different thread.

QObject: Cannot create children for a parent that is in a different thread.
Это сообщение появляется когда созданный процесс не завершился. По причине например того что в нем подвис QNetworkAccessManager..

http://stackoverflow.com/questions/3268073/qobject-cannot-create-children-for-a-parent-that-is-in-a-different-thread

http://www.qtcentre.org/archive/index.php/t-19670.html  

http://www.forum.crossplatform.ru/index.php?showtopic=4860

C++ лишние скобки

http://stackoverflow.com/questions/877523/error-request-for-member-in-which-is-of-non-class-type

QThread

#include 
#include 
#include 

class MyThread : public QThread {
   public:
   void run(){ std::cout << "HELLO !!!!" << std::endl; }
};

class MyBase1 {
   MyThread mt;

public:
   MyBase1() {
       mt.start();
   }
};

int main(int argc, char *argv[]) {
    QCoreApplication a(argc, argv);

    MyBase1 mybase;

    return a.exec();
}
 
link 
link 

вторник, 15 марта 2011 г.

QThread

http://cppe.ru/index.php/C%2B%2B/Qt/QThread

http://stackoverflow.com/questions/1780105/qtimer-select-use-need-to-get-auction-time-working

QTimer

http://www.rsdn.ru/forum/unix/2856002.all.aspx

http://www.prog.org.ru/topic_2224_15.html
http://forum.vingrad.ru/forum/topic-200719.html

Qt Взаимодействие с веб-сервером

http://qt.e-werest.org/blog/tutorial/2904.html

Куда класть логи своего приложения в Linux?

http://habrahabr.ru/qa/5717/
http://aleksmisyuk.wordpress.com/2010/01/14/simple-qt-logger/

понедельник, 14 марта 2011 г.

Makefile

http://habrahabr.ru/blogs/development/111691/

Собираем установочные пакеты из Qt проектов

http://habrahabr.ru/blogs/qt_software/86432/
http://forum.ubuntu.ru/index.php?topic=88867.0

Qt & Ubuntu. Настраиваем среду для компиляции win32-приложений

link

Qt Qmake удалить файл.

Есть файл проекта (.pro). По нему с помощью qmake генерится Makefile.

Нужно: в цель "clean" Makefil'а добавить удаление некоторых каталогов
редактируем .pro файл:
 
clean.depends += myclean
myclean.commands = $${QMAKE_DEL_DIR} test
QMAKE_EXTRA_TARGETS += clean myclean
 
 link
link 
link 

Qt. Генерация случайных чисел в интервале от A до B

qint32 MainWindow::Random(qint32 A, qint32 B)
{
    return qrand()%(B-A+1)+A;
}

link

PHP mkpath

  function mkpath($path)
  {
    if(@
mkdir($path) or file_exists($path)) return true;
    return (
mkpath(dirname($path)) and mkdir($path));
  }
?>


link

воскресенье, 13 марта 2011 г.

Горячие клавиши или shortcuts в Яндекс.Баре

В браузере Firefox с установленным Яндекс.Баром вы можете быстро переходить в поле поиска, нажав на одно из сочетаний CTRL SHIFT + K, E, F.
Если вы уже добавили сайты в визуальные закладки (всего их 9 штук), вы можете вызывать каждый из сохраненных сайтов сочетанием клавиш: ALT 1…9 (цифра соответствует номеру визуальной закладки).
link

Firefox сочетание клавиш

Ctrl + Tab или Ctrl + PageDown: Переключение между вкладками.
Ctrl + Shift + Tab или Ctrl + PageUp: Переключение между вкладками в обратном направлении.
Ctrl + (1-9): Переключитесь на вкладку со соответствующим номером.
Ctrl + N: Открытия нового окна.
Ctrl + T: Новая вкладка.
Ctrl + L or Alt + D or F6: Переключить фокус на адресную строку.
Ctrl + Enter: Открыть адрес в новой вкладке
Shift + Enter: Открыть адрес в новой окне.
Ctrl + K или Ctrl + E: Переключить фокус на панель поиска.
Ctrl + O: Открыть локальный файл .
Ctrl + W: Закрыть вкладку или окно, если есть только одна открытая вкладка .
Ctrl + Shift + W: Закрыть окно .
Ctrl + S: Сохранить страницу как локальный файл .
Ctrl + P: Версия для печати .
Ctrl + F or F3: Открыть панель поиска .
Ctrl + G or F3: Найти далее ...
Ctrl + Shift + G or Shift + F3: Найти предыдущий ...
Ctrl + B or Ctrl + I: Открыть Закладки на боковой панели.
Ctrl + H: Открытие журнала на боковой панели.
Ctrl + R or F5: Обновить текущую страницу.
Ctrl + Shift + R or Ctrl + F5: Перезагрузка текущей страницы; в обход кэш-памяти.
Ctrl + Shift + T: Восстановление только что закрытой вкладки.
Ctrl + U: Просмотр исходного кода страницы.
Ctrl + D: Закладка текущей страницы.
Ctrl + NumpadPlus or Ctrl + Equals (+/=):Увеличить размер текста.
Ctrl + NumpadMinus or Ctrl + Minus: Уменьшить размер текста.
Ctrl + Numpad[0] or Ctrl + 0: Установить размер шрифта по умолчанию.
Alt + Left или Backspace: Назад.
Alt + Right or Shift + Backspace: Вперед.
Alt + Home: Открыть главную страницу.
Ctrl + J: Открытый диалог загрузки.
F6: Переместиться в следующий фрейм (на страницах с фреймами)
Shift + F6: Переместиться в предыдущий фрейм
Alt + D: Фокус ввода перемещается в панель адреса и выделяется весь находящийся там текст, то есть можно сразу вводить новый адрес.
link

суббота, 12 марта 2011 г.

Ubuntu сконвертировать png в svg

Это нужно например для создания иконки из файла.
Можно воспользоваться программой SVGpage.
Или в inkscape импортировать png затем выбрать контур/векторизовать растр..
link
link

Ubuntu — интернет-радио

http://oniksfly.blogspot.com/2010/08/ubuntu.html

четверг, 10 марта 2011 г.

Qt парсинг ini файла

//открываем файл как ini
   QSettings settings("/etc/firefly/kiosk.conf", QSettings::IniFormat);
    QTextStream out(stdout);
//значение параметра uuid
    QString s = settings.value("/uuid").toString();
    QString s2 = settings.value("/workdir").toString();
//вывод значений
    out<<<" "<<

Qt таймер в консольном приложении

main.cpp 


#include 

#include "adeamon.h"

int main(int argc, char* argv[]) {
  QCoreApplication* app = new QCoreApplication(argc, argv);
  ADeamon* deamon = new ADeamon(app);
  return app->exec();
}


adaemon.cpp 


ADeamon::ADeamon(QObject* parent) : QObject(parent) {
  timer = new QTimer(this);
  connect(timer, SIGNAL(timeout()), this, SLOT(update()));
  timer->start(10000);
}

void ADeamon::update() {
  qWarning("Oksss");
} 




link


link

среда, 9 марта 2011 г.

PHP Обнуляем и удаляем правильно

http://habrahabr.ru/blogs/php/50798/

Студии документальной фотосъемки Sony UPX-C300

http://www.sony.ru/biz/product/idphotography/upx-c300/overview
http://ista-tech.ru/pro-foto/pro-photo-price/

linux определить сколько памяти свободно

Можно воспользоваться командами free или top
Они берут информацию из /proc/meminfo
Ядро Linux старается использовать доступную память максимально эффективно, и, по умолчанию, достаточно большой объем ОЗУ, потенциально доступный для приложений, может быть занят под кэш и буферы. Объем свободной памяти в несколько десятков мегабайт на машинах с гигабайтами оперативной памяти - вполне типичная картина для Linux. В 32-разрядной операционной системе MemFree=LowFree+HighFree.

http://markelov.blogspot.com/2009/01/linux-procmeminfo.html
http://www.linux.org.ru/forum/development/5061652
http://forum.vingrad.ru/forum/topic-256817.html#st_15_view_0

Настройка МФУ Samsung SCX-4200 в Ubuntu Linux 8.04

Можно попробовать драйвер http://www.openprinting.org/printer/Samsung/Samsung-SCX-4200 или воспользоваться инструкцией:

МФУ Samsung SCX-4200 замечательным образом работает в Ubuntu 8.04, однако требует для себя немного особой уличной магии, иначе сканер наотрез откажется работать =)

Итак.
  1. Нужно скачать последние фирменные драйвера, на данный момент ими оказались дровишки с названием «Unified Linux Driver for Linux, 13.11.08»
  2. Распаковать куда-нибудь, например в ~/samsung-scx-4200-driver
  3. Перейти в samsung-scx-4200-driver/cdroot/
  4. Установить с помощью
    sudo ./autorun
    (оговорюсь, я делал это через ssh, потому инсталлятор запустился в консольном режиме и установил все без лишних вопросов, в случае установки с графикой сталкивавшиеся люди рекомедуют указывать в процессе установки порт file:/dev/usb/lp0)

    На этом установка принтера завершена. Мне пришлось добавить его в систему через настройки принтеров, тем кто запустил инсталлятор в графическом режиме может быть и этого не потребуется. Переходим к сканеру.
  5. Нужно скачать багфикс с этой страницы (вот прямой линк на него)
  6. Распаковать, допустим, в ~/
  7. Перейти в распаковавшуюся ~/fix-nopar/
  8. Выполнить

    ./check.sh
    Если в результате появится сообщение:
    The XX-bit library has been found at /some/dir
    You may replace it with the one in the "arch" directory
    
    то необходимо заменить оригинальную библиотеку поправленой:
    sudo cp /some/dir/libmfp.so.1.0.1 /some/dir/oldlibmfp.so.1.0.1
    sudo cp arch/libmfp.so.1.0.1 /some/dir
    sudo adduser $USER lp
  9. Поправить файл /etc/init.d/mountdevsubfs.sh, найдя в нем строку «# Magic to make /proc/bus/usb work» и раскомментировав 4 следующие за ней строки:

    mkdir -p /dev/bus/usb/.usbfs
    domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
    ln -s .usbfs/devices /dev/bus/usb/devices
    mount --rbind /dev/bus/usb /proc/bus/usb
  10. Выполнить

    sudo /etc/init.d/mountdevsubfs.sh stop
    sudo /etc/init.d/mountdevsubfs.sh start
После этих манипуляций принтер и сканер должны работать как часы. Если же несмотря на вышеописанную магию что-то не работает, товарищи с убунтуфорума продолжают изыскания.
Источник

пятница, 4 марта 2011 г.

C++ библиотека для парсинга конфигов

forum

C Массивы, указатели и структуры

link

PHP отправка файлов методом POST

С использованием библиотеки pear: HTTP_Request 
link

установка:
apt-get install pear
pear install HTTP_Request

пример использования:
require_once "HTTP/Request.php";
$req =& new HTTP_Request("http://upload.example.com/upload.php");$req->setBasicAuth("johndoe""foo");$req->setMethod(HTTP_REQUEST_METHOD_POST);
$result $req->addFile('file_upload_field''/home/johndoe/text.pdf''application/pdf');
if (
PEAR::isError($result)) {
    echo 
$result->getMessage();
} else {

    
$response $req->sendRequest();

    if (
PEAR::isError($response)) {
        echo 
$response->getMessage();
    } else {
        echo 
$req->getResponseBody();
    }
}
?>

среда, 2 марта 2011 г.

PHP сравнить даты

$month 4;$day 14;$year 2009;
$today  mktime(000date("m")  , date("d"), date("Y"));$date3 mktime(000$month+3  $day$year);$date1 mktime(000$month+1  $day$year);
if(
$today $date3$color='red';
elseif(
$today $date1$color='yellow';
else 
$color='green';


Link

PHP Удаление строки из файла

if ($id != "") {//$id номер строки которую нужно удалить
$id--;//так как нумерация начинается с 0
$file=file("file.txt");//преобразуем содержимое файла в массив 

for($i=0;$i$file);$i++)//обходим массив
if($i==$id) unset($file[$i]); //удаляем требуемую строку из массива

$fp=fopen("file.txt","w"); 
fputs($fp,implode("",$file)); //записываем массив в файл
fclose($fp);
}
?>
 
link 

PHP получить вчерашную дату

Для этого нужно из текущей даты вычесть один день
$yest_date=time()-60*60*24; 
$yest_date=date("Y-m-d",$yest_date);

link 

или использовать mktime
$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));$nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);
link

PHP Работа с датой и временем

link

Я новый круг жизни сейчас начинаю ©Ольга Партала

Я новый круг жизни сейчас начинаю,
Я вижу в сознанье другую себя,
Я мыслями этими мир свой меняю,
И снова внутри бьётся сила моя.

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

Ответственность эту себе я вверяю,
Судьбу для себя я сама создаю,
Я знаньем великим теперь обладаю,
И знаю, что если хочу я могу.

Поэтому верю — открыта дорога
В ту жизнь, куда я собираюсь прийти,
И верю, что помощь придёт мне от Бога,
И люди помогут, мне путь мой пройти.

link

вторник, 1 марта 2011 г.

VirtualBox сеть из двух виртуальных машин.

В настройках каждой виртуальной машины во вкладке сеть можно использовать тип сети мост.

Ubuntu настройка Apache2

part1
part2

читать файлы с помощью PHP

http://www.ibm.com/developerworks/ru/library/os-php-readfiles/

отключить plugin-container в ubuntu

Тут как вариант, можно отключить plugin-container в ubuntu (да и в windows тоже самое) для этого сделайте следующее:
  1. Открываем новую страницу в браузере  Mozilla Firefox и в адресной строке пишим: about:config  и жмем Enter
  2. На появившейся странице с предупреждение нажимаем кнопку «Я обещаю, что будуосторожен!»
  3. Откроется страница с настройками Mozilla Firefox. В поле Фильтр введите строку: dom.ipc.plugins.enabled и установите во всех появившихся строчках(у меня под ubuntu их было три) значения в false (просто кликаем двойным нажатием на строке и видим как она меняется из true в false)
  4. После того как все поменяли закройте мазилу и запустите ее занова
  5. Проверяем загрузку проца и видим что теперь процесс plugin-container отключен.
link