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