Архив автора: admin

Новогодние тосты 2014

Новогодние тосты 2014Хороший тост должен идти от души. А если вашей душе не хватает вдохновения, то наша подборка лучших новогодних тостов именно для вас! Вдохновляемся на трогательные или веселые речи!

Пусть в Новом Году наша жизнь будет чистой, как капля родниковой воды, а счастье игриво, как шампанское в этом хрустальном бокале!

❄ ❄ ❄ ❄ ❄

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

❄ ❄ ❄ ❄ ❄

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

❄ ❄ ❄ ❄ ❄

Желаю я, чтоб Дед Мороз
Мешок Вам радости принес,
Другой мешок — со смехом,
А третий пусть — с успехом!
Свою печаль, свою тоску
Сложите Вы в мешок ему.
Пусть он все это соберет
И в лес подальше унесет!

❄ ❄ ❄ ❄ ❄

Надеюсь этот Новый год придет с подарками для каждого из нас. Тот, кто хотел купить новую машину, наконец ее купит. Кто хотел сделать какое-нибудь открытие, сделает его. Кто хотел найти любовь — отыщет ее. Пусть каждый получит свое счастье. Так выпьем же за новое, светлое в нашей жизни! За Новый год.

❄ ❄ ❄ ❄ ❄

Если в Новогоднюю ночь в вашу дверь постучится беда, то пусть ей откроет счастье и ответит: «Никого нет дома»!

❄ ❄ ❄ ❄ ❄

Новый год — праздник контрастов: на улице мороз, снег, темно, а дома — сверкают огни, весело, тепло, нарядная елка, праздничный стол, тесный круг друзей за ним. Пусть и в новом году, как бы ни бушевали вокруг ветры и ураганы, в доме и на душе будет светло и тепло. За исполнение желаний!

❄ ❄ ❄ ❄ ❄

Праздник Нового года — это всегда подведение итогов. Но как бы ни осмысливался опыт, его философия проста и сводится к одной фразе: «Живи и радуйся!» Выпьем за радости, которые дарит нам жизнь!

❄ ❄ ❄ ❄ ❄

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

Exim — моя подборка полезных команд Exim (exim4). Роутинг, работа с очередью, статус и так далее.

1. Проверяем, что нет ошибок в файле (файлах) конфигурации Exim, то есть что всё верно настроено (валидация конфига, короче):

# exim -bV
Exim version 4.80 #2 built 02-Jan-2013 18:59:17
Copyright (c) University of Cambridge, 1995 — 2012
(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 — 2012
Berkeley DB: Berkeley DB 5.1.29: (October 25, 2011)
Support for: crypteq iconv() IPv6 PAM Perl Expand_dlfunc GnuTLS move_frozen_messages Content_Scanning DKIM Old_Demime
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch ldap ldapdn ldapm mysql nis nis0 passwd pgsql sqlite
Authenticators: cram_md5 cyrus_sasl dovecot plaintext spa
Routers: accept dnslookup ipliteral iplookup manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
Configuration file is /var/lib/exim4/config.autogenerated

В выводе можно найти версию Exim, то, что он поддерживает и имя конфигурационного файла, который был проверен.

2. Валидация email адреса:

# exim -bv scukonick@gmail.com
scukonick@gmail.com verified

3. Отправка письма и отладка этой отправки

Используйте эту команду, чтобы отправить с помощью Exim письмо на определённый адрес и получить подробную информацию по тому, как Exim обработал это письмо (курсивом выделен текст письма, его надо вбить самому):

# exim -v scukonick@gmail.com
LOG: MAIN
cwd=/etc/exim4 3 args: exim -v scukonick@gmail.com
Subject: test

Hey, my message
.

LOG: MAIN
<= root@aptrack.co U=root P=local S=312 T="test"
root@m5:/etc/exim4# LOG: MAIN
cwd=/var/spool/exim4 4 args: /usr/sbin/exim4 -v -Mc 1VpioC-00036Q-NT
delivering 1VpioC-00036Q-NT
Connecting to gmail-smtp-in.l.google.com [2a00:1450:400c:c05::1b]:25 … connected
SMTP<< 220 mx.google.com ESMTP fb7si2984260wjc.173 - gsmtp
SMTP>> EHLO mydomain.com
SMTP<< 250-mx.google.com at your service, [2a00:1a48:7806:117:fc8f:1b4a:ff08:4c93]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250 CHUNKING
SMTP>> STARTTLS
SMTP<< 220 2.0.0 Ready to start TLS
SMTP>> EHLO mydomain.com
SMTP<< 250-mx.google.com at your service, [2a00:1a48:7806:117:fc8f:1b4a:ff08:4c93]
250-SIZE 35882577
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-PIPELINING
250 CHUNKING
SMTP>> MAIL FROM: SIZE=1345
SMTP>> RCPT TO:
SMTP>> DATA
SMTP<< 250 2.1.0 OK fb7si2984260wjc.173 - gsmtp
SMTP<< 250 2.1.5 OK fb7si2984260wjc.173 - gsmtp
SMTP<< 354 Go ahead fb7si2984260wjc.173 - gsmtp
SMTP>> writing message and terminating «.»
SMTP<< 250 2.0.0 OK 1386526199 fb7si2984260wjc.173 - gsmtp
SMTP>> QUIT
LOG: MAIN
=> scukonick@gmail.com F= P= R=outgoing_alerts T=remote_smtp S=325 H=gmail-smtp-in.l.google.com [2a00:1450:400c:c05::1b]:25 X=TLS1.2:RSA_ARCFOUR_SHA1:128 CV=no DN=»C=US,ST=California,L=Mountain View,O=Google Inc,CN=mx.google.com» C=»250 2.0.0 OK 1386526199 fb7si2984260wjc.173 — gsmtp» QT=12s DT=0s
LOG: MAIN
Completed QT=12s

4. Проверка роутинга письма (простая)

Проверяем, куда, через какие acl, роутеры, транспорты  и т.д. пройдет письмо. При этом само письмо не будет отправлено.

# exim -bt scukonick@gmail.com
scukonick@gmail.com
router = outgoing_alerts, transport = remote_smtp
host gmail-smtp-in.l.google.com [2a00:1450:400c:c05::1a] MX=5
host gmail-smtp-in.l.google.com [173.194.66.26] MX=5
host alt1.gmail-smtp-in.l.google.com [2a00:1450:400c:c05::1b] MX=10
host alt1.gmail-smtp-in.l.google.com [173.194.70.27] MX=10
host alt2.gmail-smtp-in.l.google.com [2a00:1450:4008:c01::1a] MX=20
host alt2.gmail-smtp-in.l.google.com [173.194.69.27] MX=20
host alt3.gmail-smtp-in.l.google.com [74.125.143.26] MX=30
host alt4.gmail-smtp-in.l.google.com [173.194.79.26] MX=40

Видно, что будет использован router outgoing_alerts, транспорт remote_smtp.Разумеется, в вашем конкретном случае роутер и транспорт могут быть (и скорее всего будут) другими.

5. Проверка роутинга письма с дебагом

Точно такая же проверка, как предыдущая, однако будет выведена куча дополнительной информации. То, что дополнительно будет выводиться, настраивается в параметре -d. Значения можно посмотреть в man exim, секция про параметр -d. Например, -d+all — выведет всё, что только можно.

# exim -bt -d+all scukonick@gmail.com

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

Автор: AlexWinner
Дата публикации: 2013-12-17T10:09:00.000-08:00

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

Моя подборка полезных команд для MySQL.

Узнать размер базы данных

SELECT table_schema "DB Name",
Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
FROM   information_schema.tables
GROUP  BY table_schema
ORDER BY Round(Sum(data_length + index_length) / 1024 / 1024, 1) DESC;

Выводим 15 наиболее фрагментированных таблиц

Читать

Методика «Два сердца»

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

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

Читать

ПОДАРОК для гармонизации отношений

                                                                         

0-lyubov-e`to-radost-zhizni-521h364У меня вчера был День рождения!

И хотя в День рождения принято получать подарки,  а не дарить их, все же я хочу сделать Вам свой ПОДАРОК!

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

Читать

Пример ускорения python используя ctypes

Один из вариантов ускорить выполнение кода Python — переписать медленный метод на язык C, с помощью ctypes можно подключать библиотеки написанные на C.
Ниже пример вызова C-метода и сравнение производительности.

1) Пишем метод (файл myfib.c)

unsigned long fib(unsigned long x)
{
if(x < 2) return x;
return fib(x-1) + fib(x-2);
}

2) Компилируем:

gcc -shared -Wl,-soname,myfib.so -o myfib.so -fPIC myfib.c

3) Вызываем из Python и сравниваем с функцией написанной на чистом python:

import ctypes
import timeit

fib = ctypes.CDLL('./myfib.so').fib
fib.restype = ctypes.c_long
fib.argtypes = (ctypes.c_ulong,)

print timeit.timeit('fib(32)', 'from __main__ import fib', number=1)

def pyfib(x):
if x < 2: return x
return pyfib(x-1) + pyfib(x-2)

print timeit.timeit('pyfib(32)', 'from __main__ import pyfib', number=1)

Результат:

0.0463268756866
1.08009696007

В итоге, за счет использования ctypes, мы получили ускорение в 23 раза.

Если использовать оптимизацию при компиляции, то можно получить большую производительность, для этого нужно указать ключ оптимизации:

gcc -O3 -shared -Wl,-soname,myfib.so -o myfib.so -fPIC myfib.c

Варианты ключей оптимизации:
-O1 — Базовая оптимизация
-O2 — GCC выполняет почти все поддерживаемые оптимизации, эта опция уменьшает как время компиляции так и время выполнения сгенерированного кода.
-O3 — Более сильная оптимизация, включает -O2 + некоторые дополнительные опции.

С учетом оптимизации -O3, мы получили такой результат:

0.023335695266
1.08294892311

Это быстрее в 46 раз чем на чистом python.

Тестировалось на ubuntu 12.10, python 2.7

Автор: D1VER
Дата публикации: 2013-12-16T05:21:00.001-08:00