среда, 9 января 2013 г.

Систематизация мыслей или "наведение порядка в голове"

I. Хочу познакомить всех с интересным инструментом, который может позволить мне навести порядок.

 Данный инструмент основывается на "Диаграммах связей (wiki)", в английском варианте эти диаграммы называются "Mind map". Если почитать статью на википедии, звучит многообещающе.

Пара инструментов (все о которых известно википедии), кроме бумаги и ручки (тоже неплохой вариант, я думаю лучший), реализующих данную концепцию (начиная с самых удобных):
  1. MindMeister 
  2. TheBrain
Статья из хабра: http://habrahabr.ru/post/140417/

II. Второй инструмент приведения наших мыслей, это систематизация дел и задач (планирование).

Основные инструменты:
  1. Wunderlist
  2. MуLife Organized (25$) - для опытных
Статья из хабра: http://habrahabr.ru/post/114841/

пятница, 4 января 2013 г.

OpenMPI под Mac OS X

1. Этап подготовки программной среды
Для начала нам нужно определиться с набором инструментов для работы. Нам потребуется компилятор C/C++ и собственно библиотека OpenMPI, которую нам предлагают на официальном сайте http://www.open-mpi.org/.
Рекомендую установить последнюю версию XCode (в моем случае это 4.5.1 под Mac OS X 10.7.5), с данной версией идет обновление компилятора gcc и g++, если у вас ранее они не были установлены. Другим вариантом может быть отдельная установка компиляторов, но этот путь может вызвать различные проблемы и потерю времени.
Следующим шагом является установка OpenMPI. Официальный сайт OpenMPI предлагает скачать установщик для Windows и пакеты для Linux с поддержкой RPM-пакетов. Оба варианта нас не устраивают, остается вариант с установкой из исходника (в моем случае предлагают скачать .TAR.BZ2 архив OpenMPI-1.6.3.tar.bz2).
Установка не из пакета, а по принципу make && make install является плохим тоном, и лучше от этого отказаться (в данном случае возможность удалить пакет может быть потеряна, и нет гарантий, что будет проверена совместимость исходников с текущим набором инструментов и библиотек). Предлагаю воспользоваться менеджером homebrew. Список Формул (аналог пакетов в Unix-подобных системах) менеджера Homebrew, нас интересует формула OpenMPI. После его установки достаточно выполнить команду:
brew install open-mpi --disable-fortran
Таким образом у нас сохраняется возможность удалить установленные исходники, мы собираем их на целевой машине и скрипт-формула, в случае грамотного написания, сообщит нам о совместимости и дополнительных требованиях к исходнику. Данный механизм чем-то напоминает Portage для установки в Gentoo.
2. Этап после подготовленной программной среды
У вас настроена среда, установлена библиотека OpenMPI. Попробуем написать и запустить первое приложение. Возьмем пример OpenMPI Hello World приложения на сайте Standford:
#include <stdio.h>
#include <mpi.h>

int main(int argc, char *argv[]) {
  int numprocs, rank, namelen;
  char processor_name[MPI_MAX_PROCESSOR_NAME];

  MPI_Init(&argc, &argv);
  MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
  MPI_Comm_rank(MPI_COMM_WORLD, &rank);
  MPI_Get_processor_name(processor_name, &namelen);

  printf("Process %d on %s out of %d\n", rank, processor_name, numprocs);

  MPI_Finalize();
}

Как видно на сайте, в процессе компиляции учавствует утилита mpicc. Компилятор mpicc – обертка для компиляторов GNU (gcc, g++), которая линкует соответствующую библиотеку MPI. Его функциональность отражается при вызове mpicc -showme, который выводит соответствующий обвертке mpicc вызов настоящего компилятора и подключаемые библиотеки. В моем случае выводится:

llvm-gcc -I/usr/local/Cellar/open-mpi/1.6.2/include -L/usr/local/Cellar/open-mpi/1.6.2/lib -lmpi -lm
Вы можете запросить отдельно mpicc -showme:link и mpicc -showme:incdirs. Вместо обвертки можно использовать компилятор gcc с требуемыми директивами mpicc.
Запустим наше первое приложение, для этого выполним сборку и запуск:

mpicc main.c -o main
./main

Продолжение следует...

четверг, 2 февраля 2012 г.

Аэродинамика, аэромотоцикл, подъемная сила, Навье-стокс, будущее...

Жутко интересно как пользоваться уравнением Навье-Стокса для решения задачи, вида, расчетов-моделирования силы тяги (подъемной силы) от вентилятора за счет воздушных потоков. Как я понимаю изменение давления с разных сторон лопастей приводит к тяге, видимо требуется почитать аэродинамику.

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

Само уравнение интересно его универсальностью, оно применимо для расчетов-моделирования текущей жидкости, например крови по венами человека, млекопитающих. Также теоретически через него можно получить данные о силе тяги от лопастей различных винтов, моделируя газовую среду с завихрениями, потоками и т.д.

Находил примеры, когда расчет тяги от лопастей (для винтовых самолетов) велся с помощью таблиц форм лопастей, где каждой форме ставиться коэффициент подъемной силы для другого уравнения (вроде уравнения подъемной силы по-вики - "разработанного Смитом и братьями Райт")

Данные мысли начали приходить в голову после одного футуристического устройства, "аэромотоцикла" - Hoverbike, разработкой которого руководит один австралийский инженер http://hover-bike.com/, лично мне интересно насколько эффективен данный мотоцикл по подъемной тяге, потреблению топлива.

Ссылки:

http://ru.wikipedia.org/wiki/Уравнения_Навье_—_Стокса

http://ru.wikipedia.org/wiki/Аэродинамическое_качество

http://ru.wikipedia.org/wiki/Подъёмная_сила

пятница, 9 сентября 2011 г.

OpenGL 4.2

По OpenGL 4 много полезной информации вы найдете здесь: http://www.opengl.org/registry/

Особенно рекомендую пользоваться справочными таблицами: http://www.khronos.org/files/opengl41-quick-reference-card.pdf

От себя добавлю, что создал проект для быстрого начала работы с OpenGL 3 и 4 версий на C++: https://github.com/xyzslash/Base-Window-Toolkit-for-OpenGL. Все желающие могут дописывать этот фреймворк, как говориться fork you!

суббота, 11 июня 2011 г.

От генов к признакам

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

Видеоинтервью Крейга Вентера о синтетической жизни

Крейг Вентер оглашает начало «синтетической жизни»

Происхождение жизни

Порадовала одна курсовая, интересно написано. Касается вопроса происхождения жизни.