mnshome.info
marzenia się spełniają



  FNS - Bursztyn
18.06.2015 12:43

 

  agar
20.05.2015 10:05
  Просчет CRC32 для того чтобы никогда не забывать и помнить как отчий наш
13.05.2015 16:40

#include <stdio.h>
#include <string.h>

typedef unsigned int uint32_t;

static const uint32_t my_crc32_table[256] =
{
    0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 
    0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 
    0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 
    0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 
    0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 
    0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 
    0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 
    0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, 
    0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 
    0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 
    0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 
    0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 
    0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 
    0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, 
    0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 
    0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 
    0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 
    0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 
    0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 
    0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, 
    0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 
    0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 
    0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 
    0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 
    0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 
    0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 
    0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 
    0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 
    0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 
    0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 
    0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 
    0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 
    0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 
    0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 
    0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 
    0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 
    0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 
    0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 
    0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 
    0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 
    0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 
    0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 
    0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 
    0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, 
    0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 
    0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 
    0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 
    0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 
    0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 
    0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 
    0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 
    0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 
    0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 
    0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 
    0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 
    0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 
    0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 
    0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 
    0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 
    0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 
    0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 
    0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 
    0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 
    0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
};

uint32_t my_crc32(uint32_t crc, const unsigned char *buf, int len) {
  if (buf == NULL || len < 0) return crc;
  crc ^= 0xffffffffL;
  while (len--) crc = (crc >> 8) ^ my_crc32_table[(crc ^ *buf++) & 0xff];
  return crc ^ 0xffffffffL;
}

int main(void) {
  unsigned char *str = "123456789";
  int len = strlen(str);
  uint32_t crc32 = my_crc32(0, str, len);

  printf("Ok. CRC32 for \"%s\" (len:%d) = %X\n", str, len, crc32);
  return 0;
}

// __END__

c
  Франтишек Грубин (чеш. František Hrubín) - Еще не осень!
08.04.2015 22:07

Еще не осень! Если я
Терплю, как осень терпит лужи,
Печаль былого бытия,
Я знаю: завтра будет лучше.
Я тыщу планов отнесу
На завтра: ничего не поздно.
Мой гроб еще шумит в лесу.
Он - дерево. Он нянчит гнезда.
Я, как безумный, не ловлю
Любые волны. Все же, все же,
Когда я снова полюблю,
Вновь обезумею до дрожи.
Я знаю, что придет тоска
И дружбу, и любовь наруша,
Отчаявшись, я чужака -
В самом себе я обнаружу.
Но в поединке между ним
И тем во мне, кто жизнь прославил,
Я буду сам судьей своим.
И будет этот бой неравен.

  SSL + OCSP на nginx
27.03.2015 10:41

Хорошая статья на тему:

http://habrahabr.ru/post/254231/

Командный тестер проверки сертификата:

# openssl s_client -connect dist.suffit.org:443 -tls1 -tlsextdebug -status

Тестер проверки сертификата (web морда): 

https://www.ssllabs.com/ssltest/index.html

  Centos + PHP 5.6+
24.03.2015 15:04

1. Подключаем репу по статье: 

http://www.linuxspace.org/archives/5029

2. Обновляем пакеты

3. Подключаем memcached по статье:

http://avihost.ru/php-ustanovka-demona-memcached-i-rasshireniya-php-memcache-na-centosfedora.html

  Отказоустойчивость сайта. Вариант реализации
20.03.2015 11:01
  WWW::MLite / Аутентификация и авторизация с использованием внешнего credentials на базе авторизации HTTP + WWW::MLite::AuthSsn
03.03.2015 13:24

Задача: 
Создать механизм аутентификации без привязки к базе данных но при
этом создать политики доступа Group/User on service в простом исполнении.

0. Разворячиваем полноценный проект Foo используя команду:

 # mlite foo.localhost

Далее, после адаптации исходных файлов под свой проект в конфигурации виртуального
хоста определяем локациюавторизационных данных. например:

    <Directory "D:/web/www/foo/share/auth">
        AuthName "Foo file authorization"
        AuthType basic
        AuthGroupFile D:/web/www/foo/.htgroups
        AuthUserFile  D:/web/www/foo/.htpasswd
    </Directory>
 
1. создаем в проекте папку share/auth и в ней 5 файлов с содержимым "Ok.":

    admin.txt
    ok.txt
    root.txt
    test.txt
    user.txt

Помимо этого нужно создать файл .htaccess с содержимым:

Require valid-user

<Files "root.txt">
    Require user root
</Files> 

<Files "admin.txt">
    Require group admin
</Files> 

<Files "user.txt">
    Require group admin user
</Files> 

<Files "test.txt">
    Require group admin user test
</Files> 

2. В файле inc/Foo/Auth.pm необходимо секцию аутентификации и авторизации привести к следующему виду:

    # Аутентификация
    unless ($authssn->authen( sub { # AAA-authen
        my $self = shift;
        my $login = shift || '';
        my $password = shift || '';
    
        # Простые проверки
        $self->reason("LOGIN_INCORRECT") && return unless $login;
        $self->reason("PASSWORD_INCORRECT") && return unless $password;
        
        # "Хитрая" авторизация
        my $sok = _fetch(sprintf($baseurl,"ok"), $login, $password);
        $self->reason("DECLINED") && return unless $sok;
    
        # Добавляем данные по сессии
        $self->set(login    => $login);      # Логин пользователя
        $self->set(password => $password);   # Пароль пользователя (MD5 and etc.)
    
        return 1;
    }, $usr->{login}, $usr->{password} )) {
        push @$error, sprintf("%s: %s",$authssn->reason, $authssn->reason_translate);
        return 0;
    }

    # Авторизация
    unless ($authssn->authz( sub { # AAA-authz
        my $self = shift;
        my $login = $self->get("login") || '';
        my $password = $self->get("password") || '';
    
        # "Хитрая" установка ролей
        $self->set(role_user => 1); # Простая роль
        foreach (qw/root admin user test/) {
            $self->set("role_$_" => _fetch(sprintf($baseurl,$_), $login, $password) ? 1 : 0);
        }
        
        return 1;
    } )) {
        push @$error, sprintf("%s: %s",$authssn->reason, $authssn->reason_translate);
        return 0;
    }

Далее добавляем функцию _fetch с объявлением LWP зависимости:

    use LWP;

    sub _fetch { # Получение URL
        my $url = shift;
        my $login = shift;
        my $password = shift;
        
        my $ua = new LWP::UserAgent(
            agent => "Altair/1.0",
            max_redirect => 10,
            requests_redirectable => ['GET','HEAD','POST'],
            protocols_allowed     => ['http', 'https'],
            timeout => 5,
        );
        my $req = new HTTP::Request("GET", $url);
        $req->authorization_basic($login, $password) if defined($login);
        my $res = $ua->request($req);
        
        return 0 unless $res->is_success && $res->content =~ /^\s*ok/i;
        return 1;
    }

3. В корневой файл inc/Foo.pm добавляем акцессоры для админов, пользователей и тестировщиков

    sub admin_access { # Доступ только для администраторов
        my $self    = shift;
        my $error   = $self->error;
        my $authssn = $self->authssn;

        $authssn->access(sub { # AAA-access
                my $self = shift;
                return 1 if $self->get("role_admin");
                push @$error, to_utf8("Доступ разрешен только администраторам ресурса");
                $self->reason("FORBIDDEN") && return;
            });
    }
    sub user_access { # Доступ только к залогиненным
        my $self    = shift;
        my $error   = $self->error;
        my $authssn = $self->authssn;

        $authssn->access(sub { # AAA-access
                my $self = shift;
                return 1 if $self->get("role_user");
                return 1 if $self->get("role_test");
                push @$error, to_utf8("Доступ разрешен только авторизированным пользователям и тестировщикам");
                $self->reason("FORBIDDEN") && return;
            });
    }

В этом же файле правим процедуру after_view в секции работы с данными авторизации:

    # Работа с некоторыми данными авторизации
    my $roles = ROLES;
    if (value($mdata => "session_enable")) {
        my $authssn = $self->authssn;
        $template->cast_if('authorized', $authssn->access);
        foreach (@$roles) { $template->cast_if($_, $authssn->get($_)) }; # По ролям
        $h->{login} = $authssn->get("login");
        $h->{usid} = $authssn->sid || '';
    } else {
        $template->cast_if('authorized', 0);
        foreach (@$roles) { $template->cast_if($_, 0) }; # По ролям
        $h->{login} = '';
        $h->{usid} = "";
    }

И определить в константах массив ролей (правки делать в начале файла):

    use constant {
            # Определяем таблицу доступных ролей
            ROLES => [qw/
                    role_test
                    role_user
                    role_admin
                    role_root
                /],
        };

4. Для распределения прав доступа достаточно в метаопределениях указывать соответствующие вызовы

    demo => { # Демо верстки
        handler => {
            access  => \&Foo::admin_access, # Доступ только для администраторов
            form    => [ \&Foo::before_view, sub {1}, \&Foo::after_view, ],
            deny    => sub {1},
            chck    => sub {1},
            proc    => sub {1},
        },
        description => "Demo page",
    },

5. Редактируем файл групп и пользователей (.htgroups и .htpasswd), и... 

PROFIT :)

  Совешания
03.03.2015 09:58
  Отношения
20.01.2015 15:32

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

Раны, которые провоцирует другой человек, всегда берут свое начало в более глубоких травмах детства. И даже если мы осознанны и работали над этими травмами, когда тот, кого мы любим, провоцирует эти состояния, мы перестаем видеть другого. Все, что мы видим бессознательно - это жестокий, безответственный, невнимательный родитель или какая-либо важная персона из нашего прошлого. Мы не можем понять, как другой человек может быть настолько слепым, чтобы не увидеть и не понять нашу боль и чувствительность в этом вопросе. Все, что происходит в эти моменты, - это трагедия, конфликт, боль, непонимание, бесконечные споры, злость, и как результат все большее недоверие и отдаление друг от друга.

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

Однажды открыв для себя источник травмы – другими словами, когда мы увидели корень этих эмоций, у нас появилась осознанность для того, чтобы проделать необходимую внутреннюю работу и не растрачивать свою энергию на драму или ответную реакцию. Наша работа состоит в том, чтобы чувствовать и выражать (когда это возможно) нашу боль и страх, не пытаясь изменить другого человека. Понимание этого позволяет нашей любви течь. Если мы видим другого человека как проблему и концентрируемся на переубеждении его или ее в том, насколько они несовершенны – любовь умирает.

Источник: https://vk.com/dr.house4you

THUD XYZZY PLUGH FRED WALDO GARPLY
GRAULT CORGE QUUZ QUX BAZ BAR FOO

Проплата домена suffit.org

0
0
0
days
:
0
0
hrs
:
0
0
min
:
0
0
sec

поиск по дате...
поиск по содержимому...
GGCzat 1.00
Tagi
Artefakty
06.05.2016 10:42:36
Создать RESTfull обработчик как модуль
24.06.2017 17:34:47
MNSHOME: Переходить на Centos!
19.08.2015 11:35:42
Переезд разработчиков на тестовый MySQL сервере
28.12.2015 10:44:39
MDScore: Marionette.js
02.06.2015 13:52:56
С Даши за ECB/VTB24
30.10.2017 10:40:53
Создать функционал 2 в 1: mod_perl библиотеку для получения отчета по бэкапам за последние сутки
29.11.2017 10:38:08
Создать простые функции криптования AES256+Blowfish+base64
01.12.2017 10:37:43
SubProject: static-site
Thu, 28 Feb 2019 10:44:39 +0400

Linki zewnętrzne

#OPERA
Czytam
GRY
MnshomeInfo
Monitoring
Photo
Przyjaciele
Serwisy
fla-master

IP

Valid XHTML 1.0 Transitional

Valid CSS!


Copyright © 1998-2017 Serż Minus. All rights reserved


do góry