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

Звезды в молодости)))

молодые звезды

АНДРЕЙ АРШАВИН

zvezdi-arshavin

аршавин

************************************************************

АВРААМ РУССО

zvezdi-avramrusso

РУССА

************************************************************

НИКОЛАЙ БАСКОВ

zvezdi-baskov

************************************************************

СЕРГЕЙ БЕЗРУКОВ

zvezdi-bezrukov

************************************************************

ДИМА БИЛАН

zvezdi-bilan

************************************************************

ЭВЕЛИНА БЛЕДАНС

zvezdi-bledans

************************************************************

ВЕРА БРЕЖНЕВА

zvezdi-brezhneva

************************************************************

АНАТОЛИЙ ЧУБАЙС

zvezdi-chubais

************************************************************

АЛЛА ДОВЛАТОВА

zvezdi-dovlatova

************************************************************

ДМИТРИЙ ДЮЖЕВ

zvezdi-duzhev

************************************************************

БОРИС ЕЛЬЦИН

zvezdi-elcin

************************************************************

НИКОЛАЙ ФОМЕНКО

zvezdi-fomenko

************************************************************

ЖАННА ФРИСКЕ

zvezdi-friske

************************************************************

МИША ГАЛУСТЯН

zvezdi-galustyan

************************************************************

РИЧАРД ГИР

zvezdi-gir

************************************************************

АЛЕКСЕЙ ГЛЫЗИН

zvezdi-glizin

************************************************************

НОННА ГРИШАЕВА

zvezdi-grishaeva

************************************************************

КОНСТАНТИН ХАБЕНСКИЙ

zvezdi-habenskii

************************************************************

ГАРИК БУЛЬДОГ ХАРЛАМОВ

zvezdi-harlamov

************************************************************

ГЕННАДИЙ ХАЗАНОВ

zvezdi-hazanov

************************************************************

ТИНА КАНДЕЛАКИ

zvezdi-kandelaki

************************************************************

КАРИНА «СЛИВКИ»

zvezdi-karina

************************************************************

ВАДИМ КАЗАЧЕНКО

zvezdi-kazachenko

************************************************************

ФИЛИПП КИРКОРОВ

zvezdi-kirkorov

************************************************************

НАТАША КОРОЛЕВА

zvezdi-koroleva

************************************************************

ГОША  КУЦЕНКО

zvezdi-kucenko.2

zvezdi-kucenko

************************************************************

АНДРЕЙ МАЛАХОВ

zvezdi-malahov

************************************************************

ГАРИК МАРТИРОСЯН

zvezdi-martirosyan

************************************************************

ВАЛЕНТИНА МАТВИЕНКО

zvezdi-matvienko

************************************************************

ДМИТРИЙ МЕДВЕДЕВ

zvezdi-medvedev

************************************************************

БОРИС МОИСЕЕВ

zvezdi-moeseev

************************************************************

ЮРИЙ НИКУЛИН

zvezdi-nikulin

************************************************************

ВАЛЕРИЯ НОВОДВОРСКАЯ

zvezdi-novodvorskaya

************************************************************

БАРАК ОБАМА

zvezdi-obama

************************************************************

ИВАН ОХЛОБЫСТИН

zvezdi-ohlabistin

***********************************************************

АЛЕКСАНДР ОЛЕШКО

zvezdi-oleshko

************************************************************

ЕВГЕНИЙ ПЕТРОСЯН

zvezdi-petrocyan

************************************************************

МАЙЯ ПЛИСЕЦКАЯ

zvezdi-pliseckaya

************************************************************

ЛЮБОВЬ ПОЛИЩУК

zvezdi-poleshuk

************************************************************

ИОСИФ ПРИГОЖИН

zvezdi-prigozhin

************************************************************

АЛЛА ПУГАЧЕВА

zvezdi-pugacheva

************************************************************

ВЛАДИМИР  ПУТИН

zvezdi-putin 2

zvezdi-putin

************************************************************

АЛЕКСАНДР РЫБАК

zvezdi-ribak

************************************************************

РОМАН АБРАМОВИЧ

zvezdi-robinovich

************************************************************

ТИМУР РОДРИГЕС

zvezdi-rodriges

************************************************************

СОФИЯ РОТАРУ

zvezdi-rotaru

************************************************************

АННА СЕМЕНОВИЧ

zvezdi-semenovich

************************************************************

ЮРИЙ ШЕВЧУК

zvezdi-shevchuk

************************************************************

МАРИЯ ШУКШИНА

zvezdi-shukshina

************************************************************

КСЕНИЯ СОБЧАК

zvezdi-sobchak.2

zvezdi-sobchak

************************************************************

ИОСИФ СТАЛИН

zvezdi-stalin

************************************************************

ТИМАТИ

zvezdi-timoti

************************************************************

ДЖОН ТРАВОЛТА

zvezdi-travolto

************************************************************

ВАЛЕРИЯ

zvezdi-valeriya

************************************************************

АНЖЕЛИКА ВАРУМ

zvezdi-varum

************************************************************

АЛЕНА ВОДОНАЕВА

zvezdi-vodonaeva

************************************************************

АНАСТАСИЯ ВОЛОЧКОВА

zvezdi-volochkova

************************************************************

АНАСТАСИЯ ЗАВОРОТНЮК

zvezdi-zavorotnuk

************************************************************

ВЛАДИМИР ЖИРИНОВСКИЙ

zvezdi-zhirinovskii

************************************************************

СЕРГЕЙ ЗВЕРЕВ

zvezdi-zverev

************************************************************

ВИКТОР СУХОРУКОВ

zvezdi-.1

************************************************************

(митрополит Киевский) КИРИЛЛ

zvezdi-

мастер-класс: рождественский домик

Мастер-класс: рождественский домик

Мастер-класс: рождественский домик — один из самых моих любимых, потому что такие милые уютные домики всегда несут в себе тепло и любовь человека, который сделал такую поделку своими руками.

мастер-класс: рождественский домик

мастер-класс: рождественский домик

Читать

Скомпилировать программу С++ под линукс G++ компилятором


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

Ответ далее.

Встала задача откомпилировать проверочный пример кода на С++ для линукса

#include 
#include
using namespace std;

int main()
{
cout << "Hello World!;" << endl;
getchar();
return 0;
}

Думал, курить буду долго. Ан нет, через 15 минут задача решилась.

Для тех, кто мало знаком с программированием, объясняю в общих словах.
Программа — это инструкции для операционной системы.
Есть операционные системы Linux и Windows (и другие).
Программа может быть написана на любом языке, мы написали её на С++.

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

Инструкции (или команды) для ОС Windows и Linux — отличаются. Существуют компиляторы, компилирующие программу для Linux и есть компилирующие для Windows (для других ОС тоже есть).

Есть много компиляторов как для Linux (gcc, g++), так и для Windows (MinGW, Visual C++, Borland)

(P.S. Признаю, здесь я смешал понятие «компилятор» с «средой разработки», в которой пишется программа и из которой сразу же может быть вызван компилятор для сборки программы).

Приступаем к действиям
Предполагаю, что мы уже имеем:
VirtualBox с установленной Kubunta 10.04 STL (32bit);

Перемещаемся в консоль и пишем:

# устанавливаем компилятор g++ для С++
sudo aptitude install g++

# перемещаемся в директорию с вашим файлом программы main.cpp
# и компилируем программу командой
g++ main.cpp -o myprog

# после этого создаётся исполняемый файл myprog, ура!
# запустить файл мы можем командой
./myprog

Синтаксис запуска компилятора:

# g++ имя_файла_с_кодом -o имя_выходной_программы
# Более подробно можно прочитать по команде
g++ --help

Чтобы создать файл main.cpp можно использовать одну из следующих команд:

vi main.cpp
nano main.cpp

Чтобы установить g++, можно использовать одну из команд:

sudo apt-get install g++
sudo aptitude install g++

Решение было найдено с использованием ресурсов:
http://ru.wikipedia.org/wiki/G%2B%2B
http://www.linuxcenter.ru/lib/books/linuxdev/linuxdev4.phtml

Автор: galiego710

новогодний шар своими руками

Новогодний шар своими руками

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

новогодний шар своими руками

новогодний шар своими руками

Читать

Об уровнях абстракций — The Very Last API

При написании не тривиальных приложений возникает вопрос: над какими библиотеками делать еще один абстрактный слой, а над какими — нет? Какие абстракции делать?

Стоит ли делать прослойку над, например, SQLAlchemy? Это же и так прослойка над SQL и DBAPI. Имеет ли смысл делать уровни абстракций над такими достаточно хорошими и отточенными в смысле интерфейсов библиотеками?

Ответ очень простой — библиотеки представляют API который должен быть применим для широкого спектра приложений. Они отображают низкоуровневые (с точки зрения их API ) вызовы на более высокоуровневый, но абстрактный интерфейс. Характерный пример — библиотеки передачи сообщений. Они позволяют не думать о сокетах, упаковке/распаковке float/int и т.п., а просто передавать структуры данных.

Типичный API системы пересылки сообщений выглядит как:

class Messaging(object):
def send_message_async(self, dest, message_tp, message_data):
# some code

def send_message_sync(self, dest, message_tp, message_data):
# some code

def get_message(self):
# some code

Но программе не нужно посылать никакие сообщения! Ей нужно выполнить действия — показать пользователю GUI, узнать завершился ли удаленный процесс, etc. API сообщений, которое было-бы идеально для некоторой программы выглядит примерно так:

class MyAPI(object):

@exception_on_false
def show_ui_message(self, level, text):
return self.messanger.send_message_async(self.UI_PROC_ID,
SHOW_DIALOG,
dict(level=level, text=text))

@exception_on_false
def reboot_vm(self, ip):
return self.messanger.send_message_async(
self.get_remote_agent_id(ip),
REBOOT_VM,
None)

def ls_remote(self, ip, remote_path):
tp, res = self.messanger.send_message_sync(
self.get_remote_agent_id(ip),
EXEC_CMD,
'ls -l {0}'.format(remote_path))
if tp == EXECUTION_FINISHED_OK:
return res
else:
raise RuntimeError("Cmd ... finished with error code {0}".
format(res))

Очень принципиальный момент — конечный API должен отражать задачи, стоящие перед программой. Четкое отделение основной логики программы от деталей реализации имеет минимум два очень важных плюса — позволяет сделать главный код легче для чтения (убирает лишние абстракции) и максимально отвязать программу от API библиотек (локализовать привязку).

Это особенная прослойка, это «последняя линия». Если остальные API предоставляют нам абстракции, то эта прослойка не должна добавлять ничего лишнего, она избавляет нас от более не нужных абстракций и говорит языком предметной области программы.

Вам нужно хранить в базе список фруктов? Сделайте функцию store_fruits. Такая функция позволить вам перейти от PostgreSQL к Cassandra, а потом к текстовым файлам (маловероятная ситуация, но не суть) без влияния на остальную программу. Потому что программе все равно где лежат данные. Программу интересует только что они сохраняются и восстанавливаются.

Мы никак не может защититься от изменения требований к программе и вместе с изменениями требований нужно будет меняться и API, который предоставляет наш слой абстракции. Но вот изменения в типе базы/структуре базы/ORM не будет приводить к изменению кода. Если смена БД или ORM — маловероятная ситуация, то вот добавление нового поля вида deleted, означающего, что запись вроде как удалена и почти нигде не должна использоваться — весьма частый случай.

# почти реальный запрос прямо из функции, отвечающей за логики программы 

services = session.query(Service).
filter(Service.zone_id == zone_id).
filter(Service.service_id == service_id).
with_lockmode('update').
limit(10).all()
# Чего-чего?????
# комментарий к запросу немного бы спас ситуацию
# но вместо решения проблем с помощью комментирования их лучше не создавать
# Этот код не требует комментариев

for service in db.get_10_services(zone_id, service_id):
# some code


# в файле db.py
def get_10_services(self, zone_id, service_id):
return self.session.query(Service).
filter(Service.zone_id == zone_id).
filter(Service.service_id == service_id).
with_lockmode('update').
limit(10).all()

Еще одна ошибка — попытка сэкономить на таком API и сделать в этом духе:

import sqlalchemy as sa

# one Function to rule them all!!
def get_user(session, *opts):
return session.query(User).filter(sa.and_(*opts)).all()

# этот код уже требует знания что там у нас за sqlalchemy такая
# и на mongo его уже не переписать так-же легко

# тут "торчат уши" sqlalchemy. Да, мы съекономили 10-20 нажатий клавишь
# на каждый вызов, но это не "the very last API"

for user in get_user(User.name == 'vasya', User.age > datetime.now()):
pass

Безусловно у любого абстрагирования есть минимум один существенный минус — пользуясь им люди хуже понимают что происходит на уровнях ниже. При возникновении проблем внутри абстракций или еще ниже (например могут быть проблемы с сетью) на их решение может уйти много времени — а проблемы возникают постоянно. Во-вторых исчезает контроль над ситуацией. Любая сложная библиотека несет свои неожиданности в добавок к особенностям нижнего уровня. В итоге вопрос «почему функция выборки из базы зависает» может стать не решаемым.

Я за последнее время видел некоторое количество достаточно опытных программистов, которые почти ничего не знают про сокеты и TCP, потому что RabbitMQ и про потоки, потому что фреймфорк подставьтет-тут-свой-фреймфорк. Нет, это не проявления вселенского зла. Отлично что программирование упрощается, но эта категория программистов — клиенты обеих проблем сверху.

Впрочем это уже другой вопрос. А наш вопрос — абстракции :).

Уровни абстракции должны быть Надежными и легкими для изучения. А ваши абстракции
«последнего рубежа» должны отражать проблемную область программы и закрывать ими я бы стал почти все нетривиальные внешние зависимости, которые используются в значительной части кода программы и привносят свои абстракции.

P.S. Обычно такой подход хорошо работает, но как и все обобщенные рассуждения эти мысли стоит материализовывать без фанатизма — случаи то разные бывают.

Ссылки:
          www.sqlalchemy.org/
          www.python.org/dev/peps/pep-0249/
Исходники этого и других постов со скриптами лежат тут — github.com/koder-ua.При использовании их, пожалуйста, ссылайтесь на koder-ua.blogspot.com.

Автор: konstantin danilov

Двойной статус мухомора

На улице декабрь, поэтому никто сломя голову не бросится в лес за мухоморами… А эти грибы отмечены, во-первых, в ботанике как смертельно ядовитые, во-вторых, во врачебной ботанике как лекарственные растения.

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

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

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

Поэтому, как придет сезон, не топчите в лесу, что под ноги попадет — все растет в природе недаром. И мухомор также.

Александр Панов


Автор: артефакты