Всегда у меня этот static какие-то затруднения вызывал, а на самом деле все просто.
Если в модуле глобальная переменная объявлена static, то она видна только из этого модуля. То же самое, если static стоит в объявлении функции.
Если в функции локальная переменная объявлена static, то она сохраняет свое значение между вызовами функций. Инициализируется только один раз. Вот пример - скользящее среднее:
double average(double x)
{
static double count = 0;
static double sum = 0;
++count;
sum += x;
return sum/count;
}
int main()
{
cout << "average = " << average(1) << endl;
cout << "average = " << average(2) << endl;
cout << "average = " << average(4) << endl;
}
В функции average переменные count и sum будут инициализированы нулями только при первом вызове функции. Можно объявлять в разных функциях статические переменные с одинаковыми именами - компилятор следит за соответсвием.
Ой, а вот тут нашел на YouTube как дядька под гармошку на площади поет Русское поле экспериментов чуть ли не лучше Летова: http://www.youtube.com/watch?v=Bxhx1tlzn44
понедельник, 28 декабря 2009 г.
понедельник, 21 декабря 2009 г.
OpenMP links
Использование библиотеки OpenMP на сайте кафедры ИКТ (где она находится и как расшифровывается - непонятно)
32 подводных камня OpenMP при программировании на С++. Очень интересная статья.
HabraHabr: Расшифровка пароля по MD5-хэшу в несколько потоков (интересные комменты)
Intel: Эффективное распределение нагрузки между потоками с помощью OpenMP Там есть ссылки на другие статьи и ресурсы на intel.com
32 подводных камня OpenMP при программировании на С++. Очень интересная статья.
HabraHabr: Расшифровка пароля по MD5-хэшу в несколько потоков (интересные комменты)
Intel: Эффективное распределение нагрузки между потоками с помощью OpenMP Там есть ссылки на другие статьи и ресурсы на intel.com
суббота, 19 декабря 2009 г.
HPC и жись
Вот строют, строют эти многопроцессорные ЭВМ... И процессоров несколько тысяч, и быстродействие уже петафлопах мерять стали...
А зачем это нужно, товарищи ученые? Геном расшифровывать? Ну расшифровывайте, если интересно. А для честных мелких предпринимателей, занимающихся почетным делом купли-продажи китайского барахла в нашей стране, эта ваша многопроцессорность нужна вообще? Это ж, блин, средний класс, надежда, можно сказать, государства.
Короче, интересно мне стало, где супервычисления используют, окромя НИИ и ВУЗов. Порылся в интернете. В основном - общие фразы, типа, круг задач широк - и банки, и нефтянка, и все-все-все. А конкретики - никакой почти.
Нашел маленькую статью Применение параллельных вычислений для автоматизации бизнес-процессов. Вооо, тут все жизненно - бухгалтерия, бонусы, никакого генома. Но рассмотрено всего две операции, где можно напараллелить - расчет зарплаты и загрузка данных в ИТ-систему.
Ну и вот чуть-чуть - Суперкомпьютеры становятся настольными в издании Промышленные Ведомости. Тут сказано, что используют HPC в САПР. И все пока...
А зачем это нужно, товарищи ученые? Геном расшифровывать? Ну расшифровывайте, если интересно. А для честных мелких предпринимателей, занимающихся почетным делом купли-продажи китайского барахла в нашей стране, эта ваша многопроцессорность нужна вообще? Это ж, блин, средний класс, надежда, можно сказать, государства.
Короче, интересно мне стало, где супервычисления используют, окромя НИИ и ВУЗов. Порылся в интернете. В основном - общие фразы, типа, круг задач широк - и банки, и нефтянка, и все-все-все. А конкретики - никакой почти.
Нашел маленькую статью Применение параллельных вычислений для автоматизации бизнес-процессов. Вооо, тут все жизненно - бухгалтерия, бонусы, никакого генома. Но рассмотрено всего две операции, где можно напараллелить - расчет зарплаты и загрузка данных в ИТ-систему.
Ну и вот чуть-чуть - Суперкомпьютеры становятся настольными в издании Промышленные Ведомости. Тут сказано, что используют HPC в САПР. И все пока...
пятница, 18 декабря 2009 г.
OpenMP & Visual Studio notes
1. Свойства проекта
Debugging -> Command Arguments - можно прописать аргументы командной строки Вашей проги и дебужить из студии (а не запускать прогу из консоли)
С/С++ -> Language -> OpenMP Support - вкл/выкл поддержку OpenMP. Если включено -
определен символ _OPENMP. Если нет - все прагмы игнорируются.
2. Кусочек кода отсюда
float sum = 10.0f;
MatrixClass myMatrix;
int j = myMatrix.RowStart();
int i;
#pragma omp parallel
{ #pragma omp for firstprivate(j) lastprivate(i) reduction(+: sum)
for(i = 0; i < count; ++i)
{
int doubleI = 2 * i;
for(; j < doubleI; ++j)
sum += myMatrix.GetElement(i, j);
} }
Не знаю, насколько критичен здесь lastprivate, но отсутствие firstprivate и reduction приводит к ошибкам.
Debugging -> Command Arguments - можно прописать аргументы командной строки Вашей проги и дебужить из студии (а не запускать прогу из консоли)
С/С++ -> Language -> OpenMP Support - вкл/выкл поддержку OpenMP. Если включено -
определен символ _OPENMP. Если нет - все прагмы игнорируются.
2. Кусочек кода отсюда
float sum = 10.0f;
MatrixClass myMatrix;
int j = myMatrix.RowStart();
int i;
#pragma omp parallel
{ #pragma omp for firstprivate(j) lastprivate(i) reduction(+: sum)
for(i = 0; i < count; ++i)
{
int doubleI = 2 * i;
for(; j < doubleI; ++j)
sum += myMatrix.GetElement(i, j);
} }
Не знаю, насколько критичен здесь lastprivate, но отсутствие firstprivate и reduction приводит к ошибкам.
вторник, 15 декабря 2009 г.
Sleep на языке C
Вот как можно реализовать функцию задержки на n секунд
#include time.h
/* Pauses for a specified number of milliseconds. */
void sleep( clock_t wait )
{
clock_t goal;
goal = wait + clock();
while( goal > clock() );
}
#include time.h
/* Pauses for a specified number of milliseconds. */
void sleep( clock_t wait )
{
clock_t goal;
goal = wait + clock();
while( goal > clock() );
}
среда, 9 декабря 2009 г.
Подбор
Была такая довольно мирная песенка I was made for loving you baby группы Kiss, которую Scooter переделал в какой-то шум со своим фирменным Eeeee!
Соло из это песенки оказалось весьма примитивным (не сверялся, правда, с инетовскими подборами, но звучит правдоподобно):
E F# G A B B G А F#
I was made for loving you, baby,
E F# G A B B G
You were made for loving me ...
Соло из это песенки оказалось весьма примитивным (не сверялся, правда, с инетовскими подборами, но звучит правдоподобно):
E F# G A B B G А F#
I was made for loving you, baby,
E F# G A B B G
You were made for loving me ...
Mixed-language programming
Мне, это, кажется в ближайшее время не понадобится, но:
вот хорошая статья про создание прог на нескольких языках. Кратко:
программерам численных методов нужно, обычно, взаимодействие C-Fortran. Т.е. из проги, написанной на одном из этих языков, надо вызвать подпрограмму на другом. Как назло, эти языки отличаются в плане обращения с подпрограммами весьма сильно, что необходимо учитывать:
1. Соглашение о вызовах. В Fortran параметры очищаются из стека вызываемой функцией. В С - вызывающей прогой. Плюс аргументы запихиваются в стек в разном порядке: в С - начиная с последнего, в Fortran - с первого.
Неудобно, короче. Но в С есть возможность организовать вызов функции и так и так: с помощью _cdecl - по-сишному, с помощью _stdcall - по-фортрановски.
2.Передача параметров. В Fortran - по ссылке.
3. Передача строк. !!. Строка в С заканчивается \0. А в Fortran - нет, вместо этого в функцию неявно передается длина строки.
4. Массивы в Си нумеруются с 0, в Фортране - с 1. Матрицы (2-мер массивы) в Си хранятся по строкам, в Fortran - по столбцам.
Помянутая статья помогает разобраться с 1-3. С п.4 можно справиться своими силами.
вот хорошая статья про создание прог на нескольких языках. Кратко:
программерам численных методов нужно, обычно, взаимодействие C-Fortran. Т.е. из проги, написанной на одном из этих языков, надо вызвать подпрограмму на другом. Как назло, эти языки отличаются в плане обращения с подпрограммами весьма сильно, что необходимо учитывать:
1. Соглашение о вызовах. В Fortran параметры очищаются из стека вызываемой функцией. В С - вызывающей прогой. Плюс аргументы запихиваются в стек в разном порядке: в С - начиная с последнего, в Fortran - с первого.
Неудобно, короче. Но в С есть возможность организовать вызов функции и так и так: с помощью _cdecl - по-сишному, с помощью _stdcall - по-фортрановски.
2.Передача параметров. В Fortran - по ссылке.
3. Передача строк. !!. Строка в С заканчивается \0. А в Fortran - нет, вместо этого в функцию неявно передается длина строки.
4. Массивы в Си нумеруются с 0, в Фортране - с 1. Матрицы (2-мер массивы) в Си хранятся по строкам, в Fortran - по столбцам.
Помянутая статья помогает разобраться с 1-3. С п.4 можно справиться своими силами.
понедельник, 9 ноября 2009 г.
Формат A4
Формат бумаги А4 в разных единица измерения:
в мм: 210 x 297
в дюймах(inches, in, "):8.26 x 11.69
в точках (points, pts):595.28 x 841.89
в мм: 210 x 297
в дюймах(inches, in, "):8.26 x 11.69
в точках (points, pts):595.28 x 841.89
понедельник, 26 октября 2009 г.
Subversion на русском
Отличный перевод SVN-book на русский находится здесь .
Русскоязычные термины немного путают (если уже прочитал английскую версию документации), поэтому вот краткий пацакско - чатланский словарь:
фиксация, она же публикация - check in (результат команды commit)
правка, она же ревизия - revision
создание рабочей копии - checkout
обновление рабочей копии - update (т.е., если мы подозреваем, что после получения нами рабочей копии в хранилище были опубликованы изменения, можно обновить нашу рабочую копию)
метка - tag, снимок с последней ревизии. Можно сказать, что это помеченная ревизия. В SVN отличия между тэгом и бранчем почти нет.
Русскоязычные термины немного путают (если уже прочитал английскую версию документации), поэтому вот краткий пацакско - чатланский словарь:
фиксация, она же публикация - check in (результат команды commit)
правка, она же ревизия - revision
создание рабочей копии - checkout
обновление рабочей копии - update (т.е., если мы подозреваем, что после получения нами рабочей копии в хранилище были опубликованы изменения, можно обновить нашу рабочую копию)
метка - tag, снимок с последней ревизии. Можно сказать, что это помеченная ревизия. В SVN отличия между тэгом и бранчем почти нет.
пятница, 23 октября 2009 г.
Sparse Matrix Converters
Если по-русски - конвертеры между разными форматами хранения разреженных матриц. [По-английски короче, поэтому и заголовок на английском.]
Форматов существует несколько, поэтому проблема конвертации весьма остра.
Итак.
1. Существует набор пакетов на Питоне для учОных и инженеров - SciPy Packages. Один из этих пакетов имеет говорящее название Sparse. Причем он умеет работать аж с семью (!) форматами. Но - эхххх - на Питоне...
2. BeBOP sparse matrix converter. Конвертирует Harwell-Boeing в Matrix Market и наоборот.
3. Система R тоже умеет работать с несколькими sparse matrix - форматами. Help есть здесь.
понедельник, 19 октября 2009 г.
Torrent
Путевое описание работы Торрента нашел в совершенно неожиданном месте - на фан-сайте Спартака:)
Вкратце идея такая - сервер при скачивании выдает клиентам файл кусочками. Клиенты качают эти кусочки не только с самого сервера (как на FTP, например), но и друг у друга. Благодаря этому скорость скачивания (теоретически) должна быть большой. Реально - все не так шоколадно.
Вкратце идея такая - сервер при скачивании выдает клиентам файл кусочками. Клиенты качают эти кусочки не только с самого сервера (как на FTP, например), но и друг у друга. Благодаря этому скорость скачивания (теоретически) должна быть большой. Реально - все не так шоколадно.
пятница, 16 октября 2009 г.
Линковка программ gfortran
Если компилируем программу (несколько файлов .f) gfortran-oм, то при сборке стандартным линкером ld можем получить ошибки:
undefined reference "_gfortran_st_write"
и тому подобное.
Как я понял из интернета, причина состоит в том, что gfortran использует какие-то свои библиотеки. Поэтому надо использовать в качестве линкера (лоадера) сам gfortran
undefined reference "_gfortran_st_write"
и тому подобное.
Как я понял из интернета, причина состоит в том, что gfortran использует какие-то свои библиотеки. Поэтому надо использовать в качестве линкера (лоадера) сам gfortran
вторник, 13 октября 2009 г.
Одноразовый PATH
Нашел интересный bat-файл, который настраивает переменную окружения на один сеанс работы с командной строкой:
SET QTDIR=<QTDIR>
SET MINGWDIR=<MINGWDIR>
SET PATH=%QTDIR%\bin;%MINGWDIR%\bin;%SystemRoot%\System32
cmd.exe
понедельник, 28 сентября 2009 г.
Где взять матрицы?
Harwell-Boeing collection:
http://math.nist.gov/MatrixMarket/data/Harwell-Boeing/
University of Florida collection
http://www.cise.ufl.edu/research/sparse/matrices/
Страница горячего финского парня Коухиа
http://users.tkk.fi/~kouhia/sparse.html
http://math.nist.gov/MatrixMarket/data/Harwell-Boeing/
University of Florida collection
http://www.cise.ufl.edu/research/sparse/matrices/
Страница горячего финского парня Коухиа
http://users.tkk.fi/~kouhia/sparse.html
вторник, 22 сентября 2009 г.
Немного о PGP
Есть у меня пара файлов с некоторой ценной информацией... И захотелось мне их зашифровать.. А из всей криптографии / компьютерной безопасности знаю я всего три буквы: P-G-P.
Порылся я в интернете, и оказалось, что существуют аж две бесплатные программы, основанные на этом алгоритме: GNU Privacy Guard и фриварная версия PGP. Статью на эту тему можно почитать здесь. Там же есть и обе программы.
А PGP - это не какое-то там мудреное название алгоритма, а всего лишь Pretty Good Privacy, довольно хорошая защита. Т.е. absolutely good privacy никто и не обещает...
Порылся я в интернете, и оказалось, что существуют аж две бесплатные программы, основанные на этом алгоритме: GNU Privacy Guard и фриварная версия PGP. Статью на эту тему можно почитать здесь. Там же есть и обе программы.
А PGP - это не какое-то там мудреное название алгоритма, а всего лишь Pretty Good Privacy, довольно хорошая защита. Т.е. absolutely good privacy никто и не обещает...
четверг, 17 сентября 2009 г.
Gparted и ISO Recorder
Нашел тут две интересные программки.
Gparted - бесплатный аналог Partition Magic. Организация этой штуки довольно оригинальная - сделали Gentoo LiveCD с сильно урезанной функциональностью и оконным менеджером FluxBox, весит около 50 мб. Загружаемся с диска (долго), запускается редактор логических дисков. Дальше все как в Partition Magic. Один только момент - чтоб сделать logic диск, надо сначала сделать extended partition, а потом уже его пилить на логические. Впрочем, на диске много всяких рекомендаций по разбивке харда, можно их тоже почитать
И совсем маленькая программулина (тоже free) - ISO Recorder. Позволяет прожигать iso образы на диски. Добавляет соответствующий пунктик в контекстное меню Windows.
Gparted - бесплатный аналог Partition Magic. Организация этой штуки довольно оригинальная - сделали Gentoo LiveCD с сильно урезанной функциональностью и оконным менеджером FluxBox, весит около 50 мб. Загружаемся с диска (долго), запускается редактор логических дисков. Дальше все как в Partition Magic. Один только момент - чтоб сделать logic диск, надо сначала сделать extended partition, а потом уже его пилить на логические. Впрочем, на диске много всяких рекомендаций по разбивке харда, можно их тоже почитать
И совсем маленькая программулина (тоже free) - ISO Recorder. Позволяет прожигать iso образы на диски. Добавляет соответствующий пунктик в контекстное меню Windows.
пятница, 4 сентября 2009 г.
Золотые ключики gcc
-I - указать директорию, где лежат включаемые хедэры (даже про stdio.h надо ему объяснять!)
-с - сделать объектный модуль (.o) без линковки
-Wall - warnings all (давно хотел узнать, что эта "стена" означает)
-S -генерация ассемблерного кода из нашей программы
пример:
gcc -I path_to_include -c myfile.c
-с - сделать объектный модуль (.o) без линковки
-Wall - warnings all (давно хотел узнать, что эта "стена" означает)
-S -генерация ассемблерного кода из нашей программы
пример:
gcc -I path_to_include -c myfile.c
Pathman
Pathman - это маленькая утилитка, которая позволяет добавлять папки в Path на постоянной основе.
Строчка path = %PATH%; "another_path_name" добавит в path папку another_path_name только на время одного сеанса работы с cmd.
Строчка path = %PATH%; "another_path_name" добавит в path папку another_path_name только на время одного сеанса работы с cmd.
вторник, 1 сентября 2009 г.
МетаПрограммирование в C++
Если вам встретился кусок кода типа
читайте следующие статьи Томаса Беккера (не брат ли Бориса:)?)
на сайте Dr. Dobbs
[кстати, очень интересный портал о программировании]:
STL & Generic Programming: C++ Template Metaprogramming
и
STL & Generic Programming - More on C++ Metaprogramming
template[такое можно найти, например, в библиотеках Boost и MTL],
class R2RProblem
{
typedef typename T::SomeType S;
public:
void Foo(S& anS)
{ /* modify anS */ }
};
читайте следующие статьи Томаса Беккера (не брат ли Бориса:)?)
на сайте Dr. Dobbs
[кстати, очень интересный портал о программировании]:
STL & Generic Programming: C++ Template Metaprogramming
и
STL & Generic Programming - More on C++ Metaprogramming
вторник, 25 августа 2009 г.
Поиск в Yandex для специалистов
Встретил такой заголовок в интернете и сильно удивился. Что-то я не видел людей, которые зарабатывали бы поиском в инете на заказ (а было бы забавно). Если же специалисты - это разработчики поисковых сервисов, то они должны делать их понятными и доступными для всех.
Ну не важно. Статья про поиск в ЖЖ кубка Яндекса по поиску очень интересная и заслуживает внимательного прочтения. Оказывается, существует огромное количество финтов, которые поомгают сделать поиск более эффективным.
Ну не важно. Статья про поиск в ЖЖ кубка Яндекса по поиску очень интересная и заслуживает внимательного прочтения. Оказывается, существует огромное количество финтов, которые поомгают сделать поиск более эффективным.
среда, 19 августа 2009 г.
DocBook
DocBook - это такой XML-формат, который "стал стандартом де-факто для разработки технической документации". Т.е. к обычным XML-тегам добавили еще целый набор тегов. После оформления текста (документации, например) по определенным правилам, запускаем XSLT-процессор (xsltproc, например) - и получаем доку.
Вот здесь про это хорошо написано. Еще есть сайты www.docbook.org и www.docbook.ru
[a bit later]
Хм, ссылка 'здесь' оказалась мегаинтересной - на примере создания файлового менеджера для Linux автор показывает, как писать коммерческий софт с использованием Eclipse. DocBook он (и другие технологии) использует по ходу дела. Ссылка на оглавление книжки:
http://www.berdaflex.com/ru/eclipse/books/rcp_filemanager/index.html
Вот здесь про это хорошо написано. Еще есть сайты www.docbook.org и www.docbook.ru
[a bit later]
Хм, ссылка 'здесь' оказалась мегаинтересной - на примере создания файлового менеджера для Linux автор показывает, как писать коммерческий софт с использованием Eclipse. DocBook он (и другие технологии) использует по ходу дела. Ссылка на оглавление книжки:
http://www.berdaflex.com/ru/eclipse/books/rcp_filemanager/index.html
пятница, 14 августа 2009 г.
Юзаешь dll - сделай import library
Usage of DLL libraries require the generation of import libraries in order for them to be called from C/C++ programs in Visual Studio. This is actually quite simple:
[нашел в интернете]
- Use the dumpbin tool provided with Visual Studio to extract the functions exported from the DLL (dumpbin /EXPORTS xxx.dll > xxx.def).
- Strip this list, so that it only contains the names for the exported functions; one on each line. Let the first line contain the word EXPORTS.
- Function names can be renamed to account to different naming convensions by writing importname=dllname (e.g. sgemv=sgemv_).
- Use the lib tool to generate import libraries (lib /def:xxx.def /MACHINE:IX86 /out:xxx.lib).
[нашел в интернете]
Чуть-чуть о BLAS и Lapack
Не ищите процедуру умножения матриц (или матрицы на вектор) в Lapack. Это для Лапака слишком простая операция. Вот вычислить разложение Шура или сбалансировать матрицу (с целью уменьшения ее числа обусловленности) - пожалуйста.
Умножение матриц есть в BLAS и называется dgemm. Выполняет эта рутина следующую операцию: alpha * op(A) * op(B) + beta * C. Здесь альфа, бета - это числа; A, B, C - матрицы. Ну а op(X) = X или X', в зависимости от флага.
Умножение матриц есть в BLAS и называется dgemm. Выполняет эта рутина следующую операцию: alpha * op(A) * op(B) + beta * C. Здесь альфа, бета - это числа; A, B, C - матрицы. Ну а op(X) = X или X', в зависимости от флага.
четверг, 13 августа 2009 г.
MD5 и помидоры
Один знающий человек объяснил, что такое MD5. Это, оказывается, такая технология хэширования - любой последовательности байт однозначно сопоставляет другую последовательность, причем обратное преобразование невозможно.
Использовать MD5 можно, например, так. Мы заводим аккаунт на сервере. При этом на серваке хранится не сам пароль, а его MD5 хэш. При аутентификации мы у себя на компе вводим пароль, хэшируем и посылаем на сервер - там производится сравнение хэшей. Поскольку преобразование MD5 однозначно, сервер пустит только человека с правильным паролем. Кража хэша с сервера ничем не грозит - расшифровать его нельзя.
Видел в сети мнение, что MD5 - это аналог контрольной CRC суммы файла, только в Линуксе. Не совсем так - результат CRC не однозначен (т.е. у разных файлов может оказаться одинаковая CRC).
Да, я еще про помидоры обещал... Так вот - очень вкусное блюдо. Варим макароны, параллельно жарим на подсолнечном масле помидоры. Сливаем воду из макарон, закидываем в них помидоры с подливой и еще немного варим. Выкладываем на тарелку, добавляем ложечку-другую соевого соуса. Едим.
Использовать MD5 можно, например, так. Мы заводим аккаунт на сервере. При этом на серваке хранится не сам пароль, а его MD5 хэш. При аутентификации мы у себя на компе вводим пароль, хэшируем и посылаем на сервер - там производится сравнение хэшей. Поскольку преобразование MD5 однозначно, сервер пустит только человека с правильным паролем. Кража хэша с сервера ничем не грозит - расшифровать его нельзя.
Видел в сети мнение, что MD5 - это аналог контрольной CRC суммы файла, только в Линуксе. Не совсем так - результат CRC не однозначен (т.е. у разных файлов может оказаться одинаковая CRC).
Да, я еще про помидоры обещал... Так вот - очень вкусное блюдо. Варим макароны, параллельно жарим на подсолнечном масле помидоры. Сливаем воду из макарон, закидываем в них помидоры с подливой и еще немного варим. Выкладываем на тарелку, добавляем ложечку-другую соевого соуса. Едим.
среда, 12 августа 2009 г.
Linux: команда nm
Полезная это штука - nm. Если у нас есть объектник (.o) или библиотека (.a) - говорим
nm file_name
и получаем названия всех функций, которые там определены или объявлены. Утилита помечает названия буквами (почти весь латинский алфавит использует). Буква 'T', в частности, означает, что функция определена в тексте. Если стоит 'U' - это значит, что функция не определена (undefined), видимо она декларируется как внешняя (extern) и ее следует искать в другом модуле/библиотеке.
nm file_name
и получаем названия всех функций, которые там определены или объявлены. Утилита помечает названия буквами (почти весь латинский алфавит использует). Буква 'T', в частности, означает, что функция определена в тексте. Если стоит 'U' - это значит, что функция не определена (undefined), видимо она декларируется как внешняя (extern) и ее следует искать в другом модуле/библиотеке.
вторник, 4 августа 2009 г.
Fortran -это страшно
Фортран - это какая-то древняя компьютерная мова, на которой питекантропы кодили свои программы оптимизации поиска мамонтов и графические редакторы для наскальных рисунков...
Если Вам вдруг надо постичь этот язык предков, имейте ввиду, что
* По умолчанию gcc компилирует прогу как код на Fortran 77. Если хочется писать на Fortran90 - используйте опцию -ff90
* Строку с операторами надо начинать с 7й колонки. В начале строки может стоять только ее номер (нужно для циклов) и знак комментария ('*' или 'C')
*Fortran не терпит пустых строк. Все пропуски надо комментировать. Т.е. вставляйте пустые комменты для разрядки текста.
*Функции библиотек, написанных на Фортране можно вызывать из С-кода. Ссылки по теме:
http://www.physics.oregonstate.edu/~rubin/nacphy/lapack/cprog.html
http://icl.cs.utk.edu/lapack-forum/archives/lapack/msg00115.html
Еще вот хорошая ссылка - Средства разработки программ на Линукс-кластере:
http://rsusu1.rnd.runnet.ru/koi8/devlp/cluster.html
Если Вам вдруг надо постичь этот язык предков, имейте ввиду, что
* По умолчанию gcc компилирует прогу как код на Fortran 77. Если хочется писать на Fortran90 - используйте опцию -ff90
* Строку с операторами надо начинать с 7й колонки. В начале строки может стоять только ее номер (нужно для циклов) и знак комментария ('*' или 'C')
*Fortran не терпит пустых строк. Все пропуски надо комментировать. Т.е. вставляйте пустые комменты для разрядки текста.
*Функции библиотек, написанных на Фортране можно вызывать из С-кода. Ссылки по теме:
http://www.physics.oregonstate.edu/~rubin/nacphy/lapack/cprog.html
http://icl.cs.utk.edu/lapack-forum/archives/lapack/msg00115.html
Еще вот хорошая ссылка - Средства разработки программ на Линукс-кластере:
http://rsusu1.rnd.runnet.ru/koi8/devlp/cluster.html
пятница, 31 июля 2009 г.
Первые шаги в Линуксе
В своем увечном (Иксы настроить не могу) Red Hat установил Midnight Commander и gcc (его не было!!) . Ставилось все из rpm-пакетов, которые на диске. Компилятор gcc - это несколько пакетов, я инсталлировал компилеры для С++ и Fortran, файлы .c, .cpp и .f теперь можно компилить единообразно.
Процедура установки такая. Сначала надо примонтировать сидюк:
mount /dev/cdrom /mnt/cdrom
Теперь осуществляем поиск по CD
find /mnt/cdrom -name "*gcc*"
Находим несколько пакетов (для разных языков программирования) с километровыми названиями. Набираем
rpm -i часть_названия_пакета
и дважды Tab - консоль сама допишет название. Инсталлируем. Чтоб посмотреть, где теперь это у нас на диске лежит набираем
which gcc
Кроме того, поставил Lapack. Скачал lapack-3.1.1.tgz. Его сначала надо разжать gzip-ом, потом разархивировать tar-ом. Кто б мне еще объяснил, чем "сжатие" от "архивации" отличаются. В директории /Src лежат сорсы для изготовления lapack.a (т.е. библиотеки Lapack), в /Blas - для blas.a. В обеих директориях лежат Makefile. которым нужен ../make.inc. Где его взять? Идем в /Install . Там лежат make.inc.LINUX, make.inc.IRIX64 и т.д. - для разных платформ, короче. Надо скопировать make.inc.LINUX в make.inс и поместить в корень файловой иерархии лапака. Затем в /Src и /Blas делаем make.
Фуххх...
Процедура установки такая. Сначала надо примонтировать сидюк:
mount /dev/cdrom /mnt/cdrom
Теперь осуществляем поиск по CD
find /mnt/cdrom -name "*gcc*"
Находим несколько пакетов (для разных языков программирования) с километровыми названиями. Набираем
rpm -i часть_названия_пакета
и дважды Tab - консоль сама допишет название. Инсталлируем. Чтоб посмотреть, где теперь это у нас на диске лежит набираем
which gcc
Кроме того, поставил Lapack. Скачал lapack-3.1.1.tgz. Его сначала надо разжать gzip-ом, потом разархивировать tar-ом. Кто б мне еще объяснил, чем "сжатие" от "архивации" отличаются. В директории /Src лежат сорсы для изготовления lapack.a (т.е. библиотеки Lapack), в /Blas - для blas.a. В обеих директориях лежат Makefile. которым нужен ../make.inc. Где его взять? Идем в /Install . Там лежат make.inc.LINUX, make.inc.IRIX64 и т.д. - для разных платформ, короче. Надо скопировать make.inc.LINUX в make.inс и поместить в корень файловой иерархии лапака. Затем в /Src и /Blas делаем make.
Фуххх...
вторник, 28 июля 2009 г.
Linux console
Как заставить ls выводить содержимое директории (с большим количеством файлов) постранично? Подать ее вывод на вход more :)
ls | more
Как найти файлы , которые не принадлежат никакому пользователю и никакой группе?
find / -nouser -o -nogroup
Поиск начинается с корня, -o играет роль OR.
ls | more
Как найти файлы , которые не принадлежат никакому пользователю и никакой группе?
find / -nouser -o -nogroup
Поиск начинается с корня, -o играет роль OR.
Юзеру на заметку
Посмотрел, как Е.С.Н. организовывает работу на компьютере. Дефрагментатор от Ashampoo запускается шедулером регулярно. Все программы инсталлируются с помощью Uninstaller-а той же фирмы. Эта прога делает снимки реестра до и после инсталляции, потом записывает разницу. В результате появляется возможность бесследной деинсталляции приложения, а не как обычно - проги давно нет, а в реестре полно ненужных ключей.
Использует утилиты Everest и WinAudit, которые показывают конфигурацию системы (hardware + Win). Особых отличий от моей SIW, правдаб не заметил
Использует утилиты Everest и WinAudit, которые показывают конфигурацию системы (hardware + Win). Особых отличий от моей SIW, правдаб не заметил
пятница, 10 июля 2009 г.
GCC
Автор блога зомбирован Линуксоидами и собирается прогать под gcc. Перед глазами бегают пингвины, trinidados штудирует следующие магические тексты:
Среди океана команд (как искать информацию о командах Линукса);
Man по gcc
Разработка программ под Линукс (под gcc, естественно);
Программирование под Cygwin
Прощай, моя крыша.
Среди океана команд (как искать информацию о командах Линукса);
Man по gcc
Разработка программ под Линукс (под gcc, естественно);
Программирование под Cygwin
Прощай, моя крыша.
четверг, 9 июля 2009 г.
Чиним Cygwin
Предположим, Вам ударило в голову попробовать Линуксовую консоль. Вы поставили Cygwin и ... о ужас, даже простейшая команда ls ему неизвестна. А на скачивание Cygwin уходит столько времени...
Спокойствие! Наши индийские друзья уже решили эту проблему. Надо сделать следующее:
Спокойствие! Наши индийские друзья уже решили эту проблему. Надо сделать следующее:
- Правой кнопкой мыши щелкнуть по "My Computer" -> Properties -> Advanced -> Environment Variables
- Добавить новую переменную среды CYGWIN_HOME и установить ее значение C:\cygwin
- Добавить в переменную PATH строчку C:\cygwin\bin (после ';').
- Нажать OK. Перезапустить Цигвина.
среда, 8 июля 2009 г.
VS : подавление исключений
Для подавления warning-a, скажем, 4996, пишем
#pragma warning(disable:4996)
Чтобы не выводилось предупреждение, что-де такая-то функция (например, getch) является deprecated (устарела и заменена на более секьюрную), можно сделать так:
#define _CRT_SECURE_NO_DEPRECATE
#pragma warning(disable:4996)
Чтобы не выводилось предупреждение, что-де такая-то функция (например, getch) является deprecated (устарела и заменена на более секьюрную), можно сделать так:
#define _CRT_SECURE_NO_DEPRECATE
Выравнивание
Определим структуру struct S {char a; bool b; int c}. Считаем, что sizeof(a) = sizeof(b) = 1, sizeof(c) = 4. Что выдаст sizeof(S)?
Может быть, 6? Не-а! Восемь. Все из-за выравнивания. Если считать, что поле a размещается по адресу 0, то с - по адресу 2 (по логике). Но процессору удобнее, если слова (word) расоплагаются по четным адресам, а int - по адресам, кратным 4. Т.е. поле с будет сдвинуто, память между b и с будет забита мусором.
Может быть, 6? Не-а! Восемь. Все из-за выравнивания. Если считать, что поле a размещается по адресу 0, то с - по адресу 2 (по логике). Но процессору удобнее, если слова (word) расоплагаются по четным адресам, а int - по адресам, кратным 4. Т.е. поле с будет сдвинуто, память между b и с будет забита мусором.
Линейная регрессия
Наконец-то мне объяснили, как проводить линейную регрессию!
Итак, пусть у нас есть N результатов наблюдений за случайной величиной X: (xi, zi). Мы предполагаем, что мат.ожидание X - это линейная функция ax+b. Параметры a и b находим с помощью МНК: минимизируем сумму квадратов отклонений (a * xi + b - zi)^2 по i от 1 до N.
Дифференцируем эту сумму по a и по b и приравниваем производные нулю. Получаем два уравнения для определения двух параметров (а и b).
Итак, пусть у нас есть N результатов наблюдений за случайной величиной X: (xi, zi). Мы предполагаем, что мат.ожидание X - это линейная функция ax+b. Параметры a и b находим с помощью МНК: минимизируем сумму квадратов отклонений (a * xi + b - zi)^2 по i от 1 до N.
Дифференцируем эту сумму по a и по b и приравниваем производные нулю. Получаем два уравнения для определения двух параметров (а и b).
воскресенье, 5 июля 2009 г.
Chord note
Пример запроса на www.chordie.com для получения аппликатур аккорда Dm6:
http://www.chordie.com/voicings.php?chord=Dm6&tuning=EADGBE
Нашел еще сайт с кучей видеоуроков: www.fretplay.com. В частности - как играть песню Offsprin "Have you ever seen".
http://www.chordie.com/voicings.php?chord=Dm6&tuning=EADGBE
Нашел еще сайт с кучей видеоуроков: www.fretplay.com. В частности - как играть песню Offsprin "Have you ever seen".
понедельник, 29 июня 2009 г.
Антивирусные утилиты
Еще раз коснусь этой темы - оказалось, что не только DrWeb делает "одноразовые" антивирусы.
Итак.
1. DrWeb CureIt - антивирусный сканер, не обновляется, скачивать непосредственно перед использованием. Качать отсюда: ftp.drweb.com/pub/drweb/cureit.
2. Kaspersky AVPTool. Аналогичная прога от Каспера.
ftp.kaspersky.ru/devbuilds/AVPTool
3. Kaspersky klwk. Утилита для удаления вирусов, блокирующих доступ к антивирусным сайтам.
ftp.kaspersky.ru/utils/klwk
Все перечисленное - бесплатно.
Итак.
1. DrWeb CureIt - антивирусный сканер, не обновляется, скачивать непосредственно перед использованием. Качать отсюда: ftp.drweb.com/pub/drweb/cureit.
2. Kaspersky AVPTool. Аналогичная прога от Каспера.
ftp.kaspersky.ru/devbuilds/AVPTool
3. Kaspersky klwk. Утилита для удаления вирусов, блокирующих доступ к антивирусным сайтам.
ftp.kaspersky.ru/utils/klwk
Все перечисленное - бесплатно.
вторник, 23 июня 2009 г.
Antivirus System Pro
Это такая дрянь, которая ставится на комп и прикидывается антивирусом. И давай - "Ваш компьютер инфицирован! Покупайте наш антивирус!". На самом деле это вирус. Он (как и Win32.HLLW.Shadow.based) делает комп частью преступной ботсети.
Убить его, в целом, просто - удалить пару файлов и ветку в реестре. Вот скрипт для Avenger.
Registry keys to delete: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{BAD4551D-9B24-42cb-9BCD-818CA2DA7B63}
Files to delete: %windir%\sysguard.exe %windir%\system32\iehelper.dll
Можно ли руками удалить? Не факт. У меня iehelper.dll (компонент, отвечающий за блокировку доступа к антивирусным сайтам) кто-то "держал" (Access denied при попытке удалить)
Убить его, в целом, просто - удалить пару файлов и ветку в реестре. Вот скрипт для Avenger.
Registry keys to delete: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{BAD4551D-9B24-42cb-9BCD-818CA2DA7B63}
Files to delete: %windir%\sysguard.exe %windir%\system32\iehelper.dll
Можно ли руками удалить? Не факт. У меня iehelper.dll (компонент, отвечающий за блокировку доступа к антивирусным сайтам) кто-то "держал" (Access denied при попытке удалить)
Win32.HLLW.Shadow.based
Свалился на меня злобный вирус. Он не дает заходить на антивирусные сайты (напр. www.symantec .com, а также все, содержащие в названии слова virus, trojan и т.д.) и на портал Microsoft. Не дает запускать некоторые проги - например, Process Explorer (от SysInternals), Avenger (это антивирусная утилитка) и т.д. Делает, короче, что хочет.
И что таки тут можно сделать:
1. Если прога не запускается (моргнул экранчик - и никакого окна), то надо переименовать соответствующий файл .exe .
2. Если не можем зайти на сайт - делаем (в консоли) nslookup имя сайта, он выдает один или несколько айпишников, можно зайти по ip
3. Качаем с ftp://ftp.drweb.com/ самую последнюю версию проги CureIt. Это необновляющийся антивир - качать надо каждый раз заново. Запускаем.
4. У меня он нашел вирий Win32.HLLW.Shadow.based. Его основной файл это name.dll, где name - случайная последовательность символов. CureIt удалила его, все заработало.
Во время лечения отыскал прогу Avenger. Она умеет сканировать на руткиты, но главное не это. В инете можно найти скрипты для Avenger, которые помогают лечить конкретный вирус. Скрипт состоит из набора файлов и ключей реестра, которые надо удалить. Avenger можно скачать с swandog46.geekstogo.com. Поддержка - на forums.spyware.info.
И что таки тут можно сделать:
1. Если прога не запускается (моргнул экранчик - и никакого окна), то надо переименовать соответствующий файл .exe .
2. Если не можем зайти на сайт - делаем (в консоли) nslookup имя сайта, он выдает один или несколько айпишников, можно зайти по ip
3. Качаем с ftp://ftp.drweb.com/ самую последнюю версию проги CureIt. Это необновляющийся антивир - качать надо каждый раз заново. Запускаем.
4. У меня он нашел вирий Win32.HLLW.Shadow.based. Его основной файл это name.dll, где name - случайная последовательность символов. CureIt удалила его, все заработало.
Во время лечения отыскал прогу Avenger. Она умеет сканировать на руткиты, но главное не это. В инете можно найти скрипты для Avenger, которые помогают лечить конкретный вирус. Скрипт состоит из набора файлов и ключей реестра, которые надо удалить. Avenger можно скачать с swandog46.geekstogo.com. Поддержка - на forums.spyware.info.
среда, 17 июня 2009 г.
Конференция им. А.А. Самарского - 2009
Проходит на ф-те ВМК МГУ 16-18 июня 2009 года.
Запомнилось:
Бобылев А.А. (Днепропетровск) Численное моделирование вынужденных колебаний вязкоупругих тел с трещинами с учетом контакта их берегов.
На образец с трещиной давят штампами, сила давления меняется, трещина открывается и закрывается, как рот.
Дьяченко С.В. и др (ИММ РАН) Трехмерный параллельный МГД-код на основе современных технологий вычислений и программирования.
Проект MARPLE, команда из 8-10 разработчиков. Используют продукты: Doxygen (составляет документацию по файлам кода, обеспечивает когерентность кода и документации); Subversion (контроль версий); cmake (кроссплатформенная сборка приложений на С++); trac (сервер для совместной работы над проектом; содержит доки, историю изменений, доступ к системе контроля версий и т.д.). Параллелят с помощью MPI, который умеет использовать многоядерность проца.
Запомнилось:
Бобылев А.А. (Днепропетровск) Численное моделирование вынужденных колебаний вязкоупругих тел с трещинами с учетом контакта их берегов.
На образец с трещиной давят штампами, сила давления меняется, трещина открывается и закрывается, как рот.
Дьяченко С.В. и др (ИММ РАН) Трехмерный параллельный МГД-код на основе современных технологий вычислений и программирования.
Проект MARPLE, команда из 8-10 разработчиков. Используют продукты: Doxygen (составляет документацию по файлам кода, обеспечивает когерентность кода и документации); Subversion (контроль версий); cmake (кроссплатформенная сборка приложений на С++); trac (сервер для совместной работы над проектом; содержит доки, историю изменений, доступ к системе контроля версий и т.д.). Параллелят с помощью MPI, который умеет использовать многоядерность проца.
среда, 20 мая 2009 г.
ТМ, ПМ и СПМ
Купил я тут журнал Техника Молодежи (ТМ). К моему удивлению, номер оказался очень интересным. Порадовало оформление - большие статьи с фотографиями. Не то что в Популярной Механике (ПМ) - винегрет из разноцветных врезочек и заметочек.
По иронии судьбы в моих номерах ТМ и ПМ оказались заметки про СПМ - специальные полицейские машины. В ПМ - про СПМ-1 Тигр, в ТМ - про СПМ-3 Медведь.
В ПМ написано примерно следуещее. Делал наш УАЗ тачку по заказу ОАЭ, арабы ее не взяли, и наклепали нижегородцы кучу модификаций своего СПМ. Одну из них "даже" приняли на вооружение в ВС РФ. "Уазики" она не вытеснит, ибо стоит 60 тысяч зеленых, иностранцы не берут, т.к. во всем мире делают клоны хаммера. Короче, безделица. А вот рассказывая про немецкие самоходки, автор просто захлебывается от восторга.
Ну, не за то редактору деньги платят, чтоб он наш ВПК хвалил.
60 тыщ - это имхо немного за боевую машину. На прошлом параде 9 мая по Красной площади проехало штук 30 Тигров - значит, в войска уже поступил. Пару раз это чудо даже через Фря проехало - патруль наверно.
Открываем ТМ. Оказывается, СПМ создана для бойцов МВД РФ, воюющих на Северном Кавказе. Основная цель - придать машине масимальную защиту от мин и действий из засады. Такие машины на Западе делают уже довольно давно в рамках проета MRAP(mine resistance, ambush что-то там) . Первопроходцами были инженеры ЮАР со своим Casper, у немцев есть Dingo, у США - Cougar.
Вот так. То есть СПМы - это не какая-то поделка, которую наши пытаются впарить за бугор как дешевый аналог Хаммера, а новая машина, построенная для удовлетворения насущных нужд армии. Причем созданная (хотя и с опозданием) в рамках мирового тренда. Вытеснять уазики такими штуками- все равно, что вытеснять танки самоходками - у них разное предназначение. К тому же наш чудом живой ВПК после Тигра пошел дальше и сделал СПМ-3 Медведь. Который, кста, оснащен пулеметом, управляемым из кабины, не надо стрелку под пули на крышу вылезать.
По иронии судьбы в моих номерах ТМ и ПМ оказались заметки про СПМ - специальные полицейские машины. В ПМ - про СПМ-1 Тигр, в ТМ - про СПМ-3 Медведь.
В ПМ написано примерно следуещее. Делал наш УАЗ тачку по заказу ОАЭ, арабы ее не взяли, и наклепали нижегородцы кучу модификаций своего СПМ. Одну из них "даже" приняли на вооружение в ВС РФ. "Уазики" она не вытеснит, ибо стоит 60 тысяч зеленых, иностранцы не берут, т.к. во всем мире делают клоны хаммера. Короче, безделица. А вот рассказывая про немецкие самоходки, автор просто захлебывается от восторга.
Ну, не за то редактору деньги платят, чтоб он наш ВПК хвалил.
60 тыщ - это имхо немного за боевую машину. На прошлом параде 9 мая по Красной площади проехало штук 30 Тигров - значит, в войска уже поступил. Пару раз это чудо даже через Фря проехало - патруль наверно.
Открываем ТМ. Оказывается, СПМ создана для бойцов МВД РФ, воюющих на Северном Кавказе. Основная цель - придать машине масимальную защиту от мин и действий из засады. Такие машины на Западе делают уже довольно давно в рамках проета MRAP(mine resistance, ambush что-то там) . Первопроходцами были инженеры ЮАР со своим Casper, у немцев есть Dingo, у США - Cougar.
Вот так. То есть СПМы - это не какая-то поделка, которую наши пытаются впарить за бугор как дешевый аналог Хаммера, а новая машина, построенная для удовлетворения насущных нужд армии. Причем созданная (хотя и с опозданием) в рамках мирового тренда. Вытеснять уазики такими штуками- все равно, что вытеснять танки самоходками - у них разное предназначение. К тому же наш чудом живой ВПК после Тигра пошел дальше и сделал СПМ-3 Медведь. Который, кста, оснащен пулеметом, управляемым из кабины, не надо стрелку под пули на крышу вылезать.
вторник, 28 апреля 2009 г.
Win Console #3
Продолжаем тему работы в Windows из консоли
shutdown - выключение компьютера
shutdown -a - якобы позволяет прервать завершение работы. у меня не получилось
порадовала возможность запускать функции из dll-ек. Например вот так можно залочить компьютер:
rundll32.exe user32.dll, LockWorkStation.
P.S. "Маяк" - быдлорадио.
shutdown - выключение компьютера
shutdown -a - якобы позволяет прервать завершение работы. у меня не получилось
порадовала возможность запускать функции из dll-ек. Например вот так можно залочить компьютер:
rundll32.exe user32.dll, LockWorkStation.
P.S. "Маяк" - быдлорадио.
суббота, 25 апреля 2009 г.
Support.microsoft.com и OpenDNS
Для тех, у кого не открывается support.microsoft.com - попробуйте зайти по IP 207.46.225.250
А если у Вас не работает DNS - попробуйте OpenDNS (www.opendns.com),
IP 208.67.222.222 и 208.67.220.220. Обещают фильтрацию контента, анти-фишинг, статистику по траффику.
А если у Вас не работает DNS - попробуйте OpenDNS (www.opendns.com),
IP 208.67.222.222 и 208.67.220.220. Обещают фильтрацию контента, анти-фишинг, статистику по траффику.
понедельник, 20 апреля 2009 г.
Штатные Win-утилиты
В папке system32 можно найти кучу всяких интересных программок, которые заботливый Microsoft поставляет вместе с Виндой. Например
fc - утилита для сравнения файлов;
sfc - проверка защищенных файлов Windows;
rasdial - подключению к интернету из командной строки;
convert - преобразование раздела FAT в NTFS;
progman - Program Manager. Позволяет собирать ярлыки программ в группы и запускать их из себя.
На телефон 911 поступил тревожный звонок. Спасатели как-то занервничали и решили не брать трубку.
fc - утилита для сравнения файлов;
sfc - проверка защищенных файлов Windows;
rasdial - подключению к интернету из командной строки;
convert - преобразование раздела FAT в NTFS;
progman - Program Manager. Позволяет собирать ярлыки программ в группы и запускать их из себя.
На телефон 911 поступил тревожный звонок. Спасатели как-то занервничали и решили не брать трубку.
среда, 1 апреля 2009 г.
HiJackThis
HiJackThis - это довольно хитрая софтинка, применяемая для поиска вирусов. Это не антивирус - лечить она не умеет. Она лишь ищет модифицированные файлы в системе и выдает список подозрительных на инфицированность объектов.
Мануалы по пользованию этой штукой:
http://www.saule-spb.ru/library/
http://www.ecuhq.com/tested-programs-how-to-use-f32/hijackthis-how-to-use-t67.htm
Логи HiJackThis анализировать самому трудно, для этого существуют спец. сервисы онлайн:
http://www.hijackthis.de/
http://www.help2go.com/Tutorials/Protect_Your_PC/Help2Go_Detective.html
Как я понял, использовать надо оба, т.к. у каждого есть свои сильные и слабые стороны.
НО! Везде пишут, что это последнее средство в борьбе с вирусами. Если начать с ее помощью что-либо исправлять можно накосячить - мама не горюй.
Еще полезная ссылка:
Get Rid of Spyware, Adware, and Web Browser Hijackers
Мануалы по пользованию этой штукой:
http://www.saule-spb.ru/library/
http://www.ecuhq.com/tested-programs-how-to-use-f32/hijackthis-how-to-use-t67.htm
Логи HiJackThis анализировать самому трудно, для этого существуют спец. сервисы онлайн:
http://www.hijackthis.de/
http://www.help2go.com/Tutorials/Protect_Your_PC/Help2Go_Detective.html
Как я понял, использовать надо оба, т.к. у каждого есть свои сильные и слабые стороны.
НО! Везде пишут, что это последнее средство в борьбе с вирусами. Если начать с ее помощью что-либо исправлять можно накосячить - мама не горюй.
Еще полезная ссылка:
Get Rid of Spyware, Adware, and Web Browser Hijackers
Вис Виталис на РСН
В эту субботу в программе Богема было интервью с не слишком известным рэппером Висом Виталисом (ex-SixtyNine). Он автор неплохой песни " В белом гетто" :
Ты знаешь, что рэп - это музыка гетто,
В черных кварталах, в Америке где-то.
No job, no woman, no money, no power.
На замечание ведущего, что он всех перебивает, тот ответил, что если б он перебивал, то в эфире остались бы только он да джинглы. Стало интересно.
Оказалось, что Вис начинал с рока, "переиграл все стили", а в 90-е переметнулся в рэп, т.к. там "за те же 3 минуты можно сказать гораздо больше". В 25 большинство уходят из музыки, начинается социальная адаптация, а он вот не может адаптироваться и продолжает клепать песни. Уже один, 69 распалась.
Парень он крутой, "я все умею и ничего не боюсь". Вот такая философия.
Так с чем же он пришел в студию?
1. Боевичок "Рэп - это панк", где Вис убеждает нас, что он играет не сладенький RnB, а очень агрессивную музыку, которая "как кислотой в лицо", как "ногой вподдых" и серпом по одному месту. В конце каждого куплета этот сорванец угрожает мирным жителям "Ты хотел покоя?!! Я ПРИДУ ЗА ТОБОЮ!!!" Энергетика сумасшедшая, по триста слов в минуту. Себя он ставит в один ряд с Ленноном, Ленином и всеми прочими бунтарями, которых вспомнил.
2. Еще песенка с философским припевом :
Мы все Алисы и Белые Кролики,
И точно знаем, по ком звонит колокол.
А моря хватит на всех поровну,
Где те глаза, что глядят в мою сторону?
Душевно так.
3. "Между собакой и волком". Что-то там - мы сцепились в борьбе с миром, мы прекрасная
пара, "я держусь - он проводит удары". Песенка на троечку, этакая перепевка Цоевских слов "Порой я чувствую, закрывая глаза, Весь мир идет на меня войной".
Ты знаешь, что рэп - это музыка гетто,
В черных кварталах, в Америке где-то.
No job, no woman, no money, no power.
На замечание ведущего, что он всех перебивает, тот ответил, что если б он перебивал, то в эфире остались бы только он да джинглы. Стало интересно.
Оказалось, что Вис начинал с рока, "переиграл все стили", а в 90-е переметнулся в рэп, т.к. там "за те же 3 минуты можно сказать гораздо больше". В 25 большинство уходят из музыки, начинается социальная адаптация, а он вот не может адаптироваться и продолжает клепать песни. Уже один, 69 распалась.
Парень он крутой, "я все умею и ничего не боюсь". Вот такая философия.
Так с чем же он пришел в студию?
1. Боевичок "Рэп - это панк", где Вис убеждает нас, что он играет не сладенький RnB, а очень агрессивную музыку, которая "как кислотой в лицо", как "ногой вподдых" и серпом по одному месту. В конце каждого куплета этот сорванец угрожает мирным жителям "Ты хотел покоя?!! Я ПРИДУ ЗА ТОБОЮ!!!" Энергетика сумасшедшая, по триста слов в минуту. Себя он ставит в один ряд с Ленноном, Ленином и всеми прочими бунтарями, которых вспомнил.
2. Еще песенка с философским припевом :
Мы все Алисы и Белые Кролики,
И точно знаем, по ком звонит колокол.
А моря хватит на всех поровну,
Где те глаза, что глядят в мою сторону?
Душевно так.
3. "Между собакой и волком". Что-то там - мы сцепились в борьбе с миром, мы прекрасная
пара, "я держусь - он проводит удары". Песенка на троечку, этакая перепевка Цоевских слов "Порой я чувствую, закрывая глаза, Весь мир идет на меня войной".
среда, 25 февраля 2009 г.
MS Word: удаляем разделители
Чтоб оформление Вордовских документов стало еще увлекательнее, разработчики добавили возможность вставки горизонтальных разделителей. Набрал *** (именно три штуки), нажал Enter - получил линию из маленьких квадратиков через весь лист. Три минуса преобразуются в обычную линию, три знака '=' - в двойную линию. Если заранее об этом не знать, восприимается, как "пасхальное яйцо" - опа, вылезла такая штука.
Не так весело становится, когда надо этот разделитель убрать. Del не помогает, как-то утащить его за границы листа тоже не получается. Совершенно неубиваемый объект.
Итак, музыка - туш, открываю страшную тайну. Чтоб убрать горизонтальный разделитель, надо поставить курсор непосредственно перед ним, потом Формат/Граница и заливка, выбрать Нет(границы).
Все, эта дрянь, которую я два дня возил по документу, исчезла. Можно нести статью в редакцию.
Не так весело становится, когда надо этот разделитель убрать. Del не помогает, как-то утащить его за границы листа тоже не получается. Совершенно неубиваемый объект.
Итак, музыка - туш, открываю страшную тайну. Чтоб убрать горизонтальный разделитель, надо поставить курсор непосредственно перед ним, потом Формат/Граница и заливка, выбрать Нет(границы).
Все, эта дрянь, которую я два дня возил по документу, исчезла. Можно нести статью в редакцию.
понедельник, 16 февраля 2009 г.
GOTO!
Все мы с малых лет знаем, что использовать goto нехорошо. Почему нехорошо - знают не все.
Я, например, не знаю.
Короче, иногда этот goto очень нужен, а его нет. В С нет, в языке Matlab-а нет.
В статье Криса Касперски подсмотрел следующий финт:
{
if (условие) break;
} while(0)
Т.е.при выполнении условия управление будет передано на строчку после while. Вот так - просто и изящно.
Я, например, не знаю.
Короче, иногда этот goto очень нужен, а его нет. В С нет, в языке Matlab-а нет.
В статье Криса Касперски подсмотрел следующий финт:
{
if (условие) break;
} while(0)
Т.е.при выполнении условия управление будет передано на строчку после while. Вот так - просто и изящно.
Win Utilities for Networking
Собственно вот они: ping, tracert, pathping, netsh, netstat, ipconfig.
Некоторые полезные команды:
net start - посмотреть все запущенные службы.
netstat -a - посмотреть все открытые порты, netstat -a -n (или -an) выведет числовые наименования портов (ip адрес : номер порта).
Некоторые полезные команды:
net start - посмотреть все запущенные службы.
netstat -a - посмотреть все открытые порты, netstat -a -n (или -an) выведет числовые наименования портов (ip адрес : номер порта).
вторник, 13 января 2009 г.
Старый Новый год
Вот, что сочинилось.
Сегодня Старый Новый год
Слегка отпразднует народ.
Откроет старое вино,
Посмотрит старое кино.
И дед Мороз опять придет,
В подарок рухлядь принесет.
Все, что на складе завалялось,
Все, что побилось и сломалось,
На принесет Мороз-проказник
На этот странный старый праздник.
Сегодня Старый Новый год
Слегка отпразднует народ.
Откроет старое вино,
Посмотрит старое кино.
И дед Мороз опять придет,
В подарок рухлядь принесет.
Все, что на складе завалялось,
Все, что побилось и сломалось,
На принесет Мороз-проказник
На этот странный старый праздник.
понедельник, 12 января 2009 г.
Ссылка - С++
Когда одолевает тупнячок за монитором, люблю я поискать что-нибудь в Интернете.
Вот, сегодня нашел сайт "настольной поисковой системы". Создатели сайта выложили часть исходников системы, а также всякие материалы для Cpp-девелоперов. Не пропадать же добру -вот ссылки
Руководство по STL
Библиотека Boost
Кстати, Boost - это около 100 (!) библиотек. В частности, есть библиотека для работы с регулярными выражениями. А библиотека Boost Graph - для работы с графами, а не с графикой.
Вот, сегодня нашел сайт "настольной поисковой системы". Создатели сайта выложили часть исходников системы, а также всякие материалы для Cpp-девелоперов. Не пропадать же добру -вот ссылки
Руководство по STL
Библиотека Boost
Кстати, Boost - это около 100 (!) библиотек. В частности, есть библиотека для работы с регулярными выражениями. А библиотека Boost Graph - для работы с графами, а не с графикой.
пятница, 9 января 2009 г.
Tcl. Нервный тикль.
Отдельные читатели нашего блога понимающе улыбнутся-утром в куплете, вечером в газете. Хм-хм.
По-видимому, одна из самых глубоких, подробных и читабельных публикаций по Tcl - это статьи Андрея Зубинского на itc.ua (неплохой сайт, кстати, но оочень долго грузится). Это ни в коем случае не учебник (и, тем более, не справочник по языку), это.. ну такое вдумчивое погружение в предмет. Написано интересно, плюс в комментах автор хорошо пообщался с читателями. Означенные комменты также полезно почитать.
Ссылки вот:
http://itc.ua/article.phtml?ID=16262
http://itc.ua/article.phtml?ID=16346
http://itc.ua/article.phtml?ID=16801
http://itc.ua/article.phtml?ID=17447
http://itc.ua/article.phtml?ID=18278
http://itc.ua/article.phtml?ID=1228
По-видимому, одна из самых глубоких, подробных и читабельных публикаций по Tcl - это статьи Андрея Зубинского на itc.ua (неплохой сайт, кстати, но оочень долго грузится). Это ни в коем случае не учебник (и, тем более, не справочник по языку), это.. ну такое вдумчивое погружение в предмет. Написано интересно, плюс в комментах автор хорошо пообщался с читателями. Означенные комменты также полезно почитать.
Ссылки вот:
http://itc.ua/article.phtml?ID=16262
http://itc.ua/article.phtml?ID=16346
http://itc.ua/article.phtml?ID=16801
http://itc.ua/article.phtml?ID=17447
http://itc.ua/article.phtml?ID=18278
http://itc.ua/article.phtml?ID=1228
Подписаться на:
Сообщения (Atom)