LSDEEX

July 24, 2010

Структура проекта на С++

Filed under: c++ — admin @ 11:47 am

С php давно всё известно. Но в отношении десктопа следует изучить структуру поподробнее.
Взято с RSDN

> У меня в проекте много разных компонентов:
> исходники,

/src/
/sources/
/includes/
/includes//

> чужие исходники,
/extern/ /

> ресурсы,
/src/ /

> либы,
/redist//
> дллки,
/redist//

> бинарники,
результат сборки ?
/result/
/output/
/output/bin/

или необходиоые для сборки?
/tools//

> скрипты,
/tools/scripts/
> логи,
/build.log

> файлы IDE,
/
/product/ /

> временные файлы
/output/tmp
/output/ /tmp

> и быстро добавлять новые(не предусмотренные)
> компоненты,

/src//

> проекты или что то еще.
/src/ /
/products/ /

Рекомендую постмотреть на структуру KDE/QT проектов, они как раз кросс-
платформенные.

Имеет смысл начать с маленькой структуры:
/ — корень проекта с главным конфигуратором и главным сборщиком
/src — корень исходников
/src/subprojectN -подпроект, один/несколько на подсистему
/inсludes — сюда попадают все .h по тематикам после сборки проекта
/inсludes/subsystemN
/i18n — вся локализация, добавить по вкусу
/bin — результат для проверки, источник для упаковки
/bin/build-modeN — цели, debug/release/unix/win32/….
/library (aka externals, redist, modules… ) — иерархия заимствованных
компонент
/tools — утилиты сборки

> Подойдет книга или развернутая статья на эту тему. я видел разные
структуры разных проектов и понимаю, что для
> каждого проекта будет удобна своя структура. Интересует именно
> специализированная литература по теме. IDE: VS2008, Qt Creator
файлы IDE могут сосуществать вместе в

/products/ /

но Qt больше любит:

/src/solution.pro
/src/ /projfile.pro

Главное: не Qt решение вынеси в отдельный
проект чтобы остальные не знали о различной реализации.

/src//myapi
/src//win32/
/src//unix/

И резюме:
Перетаскиваать файлы с места на место в С++ можно хоть каждый день.
главное чтобы VCS это позволяла и все нужные проекту .H и A;SO;DLL;LIB
появлялись всегда в одном и том же месте типа /includes & /lib

July 23, 2010

QIP 2005 Error: current language / skins file corrupted

Filed under: soft errors, windows — admin @ 5:47 pm

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

Решение проблем:

1 если current skins file corrupted заходим в QIP\Skins\
там в файле current.cfg должно быть прописано имя текущего скина (папки с ним, типа QIP/Skins/ICQ5), а на следующей строке – 1

ICQ5
1

также скин должен быть в списке скинов – skins.cfg

2 если current language file corrupted идем в QIP\LI\
в current.cfg пишем имя папки с текущим языком, например Russian
в langs.cfg список доступных языков

Если ошибка повторяется – пробуйте другие скины/языки
Если совсем всё плохо – проще скачать архив с квипом http://qip.ru/download_qip_ru и взять скины/языки с конфигами оттуда

July 17, 2010

Наша сборка denwer

Filed under: other — admin @ 11:36 am

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

Мы не претендуем на то, что в чём-то улучшили денвер!
Если вы используете его для разработки сайтов, то лучше конечно скачать свежую версию с сайта www.denwer.ru.
Данная сборка необходима для запуска скриптов, без предварительной настройки php и добавления расширений.

Она избавляет вас от:
- заполнения формы на сайте денвера
- получение ссылки на скачивание на почту
- ручное добавление расширений в php
- редактирование php.ini для их подключения
- ручное добавление ssl библиотек

СКАЧАТЬ (7.5 mb)

July 12, 2010

создание пароля для htpasswd средствами php (алгоритм MD5 APR)

Filed under: other, php, хостинги — admin @ 1:04 am

Немало времени потратил на то, чтобы научиться создавать htpasswd средствами php без утилиты апача htpasswd.exe

В итоге пришёл к одному выводу:

- для винды подходит либо незакодированный пароль (plain-text), либо закодированный алгоритмом MD5 APR
- для юникс-систем только закодированный алгоритмом MD5 APR

Вкратце, что такое алгоритм MD5 APR: существует версия MD5 для юникс-систем, основное отличие которой в том, что текст кодируется в обычный md5 тысячу раз. MD5 APR, в свою очередь, основан на юникс-версии, но с добавлением соли (salt).

Функция для генерации MD5 APR хеша в php:

[-]
View Code PHP
function md5_apr($password)
{
    $salt = substr(str_shuffle("abcdefghijklmnopqrstuvwxyz0123456789"), 0, 8);

    $len = strlen($password);

    $text = $password .'$apr1$'. $salt;

    $bin = pack("H32", md5($password.$salt.$password));

    for($i = $len; $i > 0; $i -= 16)
        $text .= substr($bin, 0, min(16, $i));

    for($i = $len; $i > 0; $i >>= 1)
        $text .= ($i & 1)? chr(0): $password{0};

    $bin = pack("H32", md5($text));

    for($i = 0; $i < 1000; $i++)
    {
        $new = ($i & 1)? $password : $bin;

        if ($i % 3)
            $new .= $salt;

        if ($i % 7)
            $new .= $password;

        $new .= ($i & 1)? $bin : $password;
        $bin = pack("H32", md5($new));
    }

    $tmp = '';

    for ($i = 0; $i < 5; $i++)
    {
        $k = $i + 6;
        $j = $i + 12;

        if ($j == 16)
            $j = 5;

        $tmp = $bin[$i].$bin[$k].$bin[$j].$tmp;
    }

    $tmp = chr(0).chr(0).$bin[11].$tmp;
        $tmp = strtr(strrev(substr(base64_encode($tmp), 2)),
            "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwx  yz0123456789+/",
            "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmn  opqrstuvwxyz");

    return "$"."apr1"."$".$salt."$".$tmp;
}

July 11, 2010

Настройка adsl-модема Интеркросс для webstream в Новосибирске

Filed under: other, windows — admin @ 11:59 am

1 на компе – все берется автоматически
2 в роутере

- идем в advanced setup
- добавляем или редактируем соединение типа PPPoE – обычно называется ppp_0_35_1
- настройки:

1 vpi/vci 0/35, service category – UBR without PCR, “Enable Quality Of Service” включен
2 тип соединения “PPP over Ethernet (PPPoE)”, Encapsulation Mode – LLC, “Enable 802.1q” выключен
3 логин, пароль, имя сервиса internet, Authentication Method AUTO, включить чекбоксы – PPP IP extension и Enable NAT
4 включить Enable IGMP Multicast, Enable WAN Service, имя сервиса pppoe_0_35_1
5 save/reboot

Powered by WordPress