понедельник, 28 декабря 2009 г.

Static в С

Всегда у меня этот 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

понедельник, 21 декабря 2009 г.

OpenMP links

Использование библиотеки OpenMP на сайте кафедры ИКТ (где она находится и как расшифровывается - непонятно)

32 подводных камня OpenMP при программировании на С++. Очень интересная статья.

HabraHabr: Расшифровка пароля по MD5-хэшу в несколько потоков (интересные комменты)

Intel: Эффективное распределение нагрузки между потоками с помощью OpenMP Там есть ссылки на другие статьи и ресурсы на intel.com

суббота, 19 декабря 2009 г.

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 приводит к ошибкам.

вторник, 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() );
}

среда, 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 ...

Mixed-language programming

Мне, это, кажется в ближайшее время не понадобится, но:

вот хорошая статья про создание прог на нескольких языках. Кратко:

программерам численных методов нужно, обычно, взаимодействие 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

понедельник, 26 октября 2009 г.

Subversion на русском

Отличный перевод SVN-book на русский находится здесь .

Русскоязычные термины немного путают (если уже прочитал английскую версию документации), поэтому вот краткий пацакско - чатланский словарь:

фиксация, она же публикация - 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, например), но и друг у друга. Благодаря этому скорость скачивания (теоретически) должна быть большой. Реально - все не так шоколадно.

пятница, 16 октября 2009 г.

Линковка программ gfortran

Если компилируем программу (несколько файлов .f) gfortran-oм, то при сборке стандартным линкером ld можем получить ошибки:
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

вторник, 22 сентября 2009 г.

Немного о PGP

Есть у меня пара файлов с некоторой ценной информацией... И захотелось мне их зашифровать.. А из всей криптографии / компьютерной безопасности знаю я всего три буквы: P-G-P.

Порылся я в интернете, и оказалось, что существуют аж две бесплатные программы, основанные на этом алгоритме: 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.

пятница, 4 сентября 2009 г.

Золотые ключики gcc

-I - указать директорию, где лежат включаемые хедэры (даже про stdio.h надо ему объяснять!)
-с - сделать объектный модуль (.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.

вторник, 1 сентября 2009 г.

МетаПрограммирование в C++

Если вам встретился кусок кода типа
template
class R2RProblem
{
typedef typename T::SomeType S;
public:
void Foo(S& anS)
{ /* modify anS */ }
};
[такое можно найти, например, в библиотеках Boost и MTL],
читайте следующие статьи Томаса Беккера (не брат ли Бориса:)?)
на сайте 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

пятница, 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).
More details can be found in Microsoft KB131313, and Stdcall and DLL tools of MSVC and MinGW.

[нашел в интернете]

Чуть-чуть о BLAS и Lapack

Не ищите процедуру умножения матриц (или матрицы на вектор) в Lapack. Это для Лапака слишком простая операция. Вот вычислить разложение Шура или сбалансировать матрицу (с целью уменьшения ее числа обусловленности) - пожалуйста.

Умножение матриц есть в 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).

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

среда, 12 августа 2009 г.

Linux: команда nm

Полезная это штука - nm. Если у нас есть объектник (.o) или библиотека (.a) - говорим

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

пятница, 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.

Фуххх...

вторник, 28 июля 2009 г.

Linux console

Как заставить ls выводить содержимое директории (с большим количеством файлов) постранично? Подать ее вывод на вход more :)

ls | more

Как найти файлы , которые не принадлежат никакому пользователю и никакой группе?

find / -nouser -o -nogroup
Поиск начинается с корня, -o играет роль OR.

Юзеру на заметку

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

Использует утилиты Everest и WinAudit, которые показывают конфигурацию системы (hardware + Win). Особых отличий от моей SIW, правдаб не заметил

пятница, 10 июля 2009 г.

GCC

Автор блога зомбирован Линуксоидами и собирается прогать под gcc. Перед глазами бегают пингвины, trinidados штудирует следующие магические тексты:

Среди океана команд (как искать информацию о командах Линукса);
Man по gcc
Разработка программ под Линукс (под gcc, естественно);
Программирование под Cygwin

Прощай, моя крыша.

четверг, 9 июля 2009 г.

Чиним Cygwin

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

Спокойствие! Наши индийские друзья уже решили эту проблему. Надо сделать следующее:
  1. Правой кнопкой мыши щелкнуть по "My Computer" -> Properties -> Advanced -> Environment Variables
  2. Добавить новую переменную среды CYGWIN_HOME и установить ее значение C:\cygwin
  3. Добавить в переменную PATH строчку C:\cygwin\bin (после ';').
  4. Нажать OK. Перезапустить Цигвина.
Оригинал здесь: http://thehacklist.blogspot.com/2009/04/cygwin-ls-command-not-found.html.

среда, 8 июля 2009 г.

VS : подавление исключений

Для подавления warning-a, скажем, 4996, пишем
#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 и с будет забита мусором.

Линейная регрессия

Наконец-то мне объяснили, как проводить линейную регрессию!
Итак, пусть у нас есть 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".

понедельник, 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

Все перечисленное - бесплатно.

вторник, 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 при попытке удалить)

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.

среда, 17 июня 2009 г.

Конференция им. А.А. Самарского - 2009

Проходит на ф-те ВМК МГУ 16-18 июня 2009 года.

Запомнилось:
Бобылев А.А. (Днепропетровск) Численное моделирование вынужденных колебаний вязкоупругих тел с трещинами с учетом контакта их берегов.

На образец с трещиной давят штампами, сила давления меняется, трещина открывается и закрывается, как рот.

Дьяченко С.В. и др (ИММ РАН) Трехмерный параллельный МГД-код на основе современных технологий вычислений и программирования.

Проект MARPLE, команда из 8-10 разработчиков. Используют продукты: Doxygen (составляет документацию по файлам кода, обеспечивает когерентность кода и документации); Subversion (контроль версий); cmake (кроссплатформенная сборка приложений на С++); trac (сервер для совместной работы над проектом; содержит доки, историю изменений, доступ к системе контроля версий и т.д.). Параллелят с помощью MPI, который умеет использовать многоядерность проца.

среда, 20 мая 2009 г.

ТМ, ПМ и СПМ

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

По иронии судьбы в моих номерах ТМ и ПМ оказались заметки про СПМ - специальные полицейские машины. В ПМ - про СПМ-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. "Маяк" - быдлорадио.

суббота, 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. Обещают фильтрацию контента, анти-фишинг, статистику по траффику.

понедельник, 20 апреля 2009 г.

Штатные Win-утилиты

В папке system32 можно найти кучу всяких интересных программок, которые заботливый Microsoft поставляет вместе с Виндой. Например

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

Вис Виталис на РСН

В эту субботу в программе Богема было интервью с не слишком известным рэппером Висом Виталисом (ex-SixtyNine). Он автор неплохой песни " В белом гетто" :

Ты знаешь, что рэп - это музыка гетто,
В черных кварталах, в Америке где-то.
No job, no woman, no money, no power.

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

Оказалось, что Вис начинал с рока, "переиграл все стили", а в 90-е переметнулся в рэп, т.к. там "за те же 3 минуты можно сказать гораздо больше". В 25 большинство уходят из музыки, начинается социальная адаптация, а он вот не может адаптироваться и продолжает клепать песни. Уже один, 69 распалась.

Парень он крутой, "я все умею и ничего не боюсь". Вот такая философия.

Так с чем же он пришел в студию?

1. Боевичок "Рэп - это панк", где Вис убеждает нас, что он играет не сладенький RnB, а очень агрессивную музыку, которая "как кислотой в лицо", как "ногой вподдых" и серпом по одному месту. В конце каждого куплета этот сорванец угрожает мирным жителям "Ты хотел покоя?!! Я ПРИДУ ЗА ТОБОЮ!!!" Энергетика сумасшедшая, по триста слов в минуту. Себя он ставит в один ряд с Ленноном, Ленином и всеми прочими бунтарями, которых вспомнил.

2. Еще песенка с философским припевом :

Мы все Алисы и Белые Кролики,
И точно знаем, по ком звонит колокол.
А моря хватит на всех поровну,
Где те глаза, что глядят в мою сторону?

Душевно так.

3. "Между собакой и волком". Что-то там - мы сцепились в борьбе с миром, мы прекрасная
пара, "я держусь - он проводит удары". Песенка на троечку, этакая перепевка Цоевских слов "Порой я чувствую, закрывая глаза, Весь мир идет на меня войной".

среда, 25 февраля 2009 г.

MS Word: удаляем разделители

Чтоб оформление Вордовских документов стало еще увлекательнее, разработчики добавили возможность вставки горизонтальных разделителей. Набрал *** (именно три штуки), нажал Enter - получил линию из маленьких квадратиков через весь лист. Три минуса преобразуются в обычную линию, три знака '=' - в двойную линию. Если заранее об этом не знать, восприимается, как "пасхальное яйцо" - опа, вылезла такая штука.

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

Итак, музыка - туш, открываю страшную тайну. Чтоб убрать горизонтальный разделитель, надо поставить курсор непосредственно перед ним, потом Формат/Граница и заливка, выбрать Нет(границы).

Все, эта дрянь, которую я два дня возил по документу, исчезла. Можно нести статью в редакцию.

понедельник, 16 февраля 2009 г.

GOTO!

Все мы с малых лет знаем, что использовать goto нехорошо. Почему нехорошо - знают не все.
Я, например, не знаю.
Короче, иногда этот 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 адрес : номер порта).

вторник, 13 января 2009 г.

Старый Новый год

Вот, что сочинилось.

Сегодня Старый Новый год
Слегка отпразднует народ.

Откроет старое вино,
Посмотрит старое кино.
И дед Мороз опять придет,
В подарок рухлядь принесет.

Все, что на складе завалялось,
Все, что побилось и сломалось,
На принесет Мороз-проказник
На этот странный старый праздник.

понедельник, 12 января 2009 г.

Ссылка - С++

Когда одолевает тупнячок за монитором, люблю я поискать что-нибудь в Интернете.
Вот, сегодня нашел сайт "настольной поисковой системы". Создатели сайта выложили часть исходников системы, а также всякие материалы для 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