4 декабря 2009 г.

Java: краткая инициализация List

А знаете ли вы, что методы с произвольным числом параметров (в отличие от c++ удобно реализованные) и класс Arrays даёт нам в Java возможность быстрой инициализации коллекций почти так же удобно, как в каком-нибудь php:
List<string> list = Arrays.asList("1", "2", "3");
А autoboxing (автоматическое преобразование примитивных типов во врапперы и обратно) позволяет то же самое сделать и с примитивами!
List<integer> list = Arrays.asList(1, 2, 3);
Чудеса, да и только. В java7 (по слухам) добавят специальные свистелки-перделки для этого. Помимо всякого другого бесполезного годобра.

17 ноября 2009 г.

Midnight Commander (mc) ассоциации файлов

Чтобы заставить Midnight Commander нормально открывать/показывать файлы надо порыться в файлах настроек этого всего.
Общесистемный файл: /etc/mc/mc.ext
Пользовательский файл: /home/user/.mc/bindings
Лучше открывать из самого mc их (см.меню), тогда после сохранения будет всё применяться. Самое тут основное - правильно настроить программы для оссоциаций файлов. Смотрите какие есть и те ставьте. Небольшая хитрость - для большинства файлов для команды Open, по всей видимости, будет удобно назначить универсальную команду открытия по системным ассоциациям окружения.
Для этого надо будет сделать такие ассоциации:
# XFCE
# Open=exo-open %f >/dev/null 2>&1 &
# Gnome
# Open=gnome-open %f >/dev/null 2>&1 &
# KDE
# Open=kfmclient exec %f >/dev/null 2>&1 &

30 октября 2009 г.

google-earth и fedora, не запускается (selinux нам не помешает)

После установки под федорой google-earth он не запускается при некоторых настройках SELinux. Надо надобавлять в контекст библиотеки.

22 октября 2009 г.

linux: глубокое восстановление флешки, форматирование флешки

Иногда помогает избавиться от программных глюков флешки, битой ФС и прочего. Итак...
0) Увидим нашу флешку

# /sbin/lsusb
Bus 001 Device 008: ID 1307:0165 Transcend Information, Inc.
...


1) Видим её программно (ОЧЕНЬ внимательно проверьте - тот ли это диск, можно поглядеть в /media/.hal-mtab если у вас RH-дистрибутив итд):

# /sbin/hdparm /dev/sdd

/dev/sdd:
readonly = 0 (off)
readahead = 256 (on)
geometry = 1023/249/62, sectors = 15794176, start = 0


2) Полностью зачистим ФС:

# dd if=/dev/zero of=/dev/sdd
dd: запись в `/dev/sdd': На устройстве кончилось место
15794177+0 записей считано
15794176+0 записей написано
скопировано 8086618112 байт (8,1 GB), 4783,14 c, 1,7 MB/c

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

# dd if=/dev/zero | pv | dd of=/dev/sdd
311MiB 0:03:06 [ 648KiB/s] [ <=> ]


3) Создаём разделы:

# /sbin/fdisk /dev/sdd
n (новый раздел), p (примари), 1 (первый), enter enter (границы по умолчанию);
t (смена ид раздела), c (fat32 lba или по-другому, vfat)
w (запись таблицы и выход)


4) Создаём файловую систему:

# /sbin/mkfs -t vfat /dev/sdd1

linux: SVN-сервер, SVN-репозиторий (fedora)

Как установить SVN-сервер под linux (fedora) и настроить репозиторий.

linux: установка скорости дисковода

Способ раз.
hdparm -E 8 /dev/cdrom

Способ два.
mount -o speed=8 /dev/cdrom /mnt/cdrom

Способ три. Не требует привилегий root
eject -x 4 /dev/cdrom
Иногда надо указывать директорию, куда примонтирован диск.
eject -x 4 /mnt/cdrom

linux: локальный репозиторий из DVD диска (fedora 7) Local repository from DVD

1а) ставим вручную
# /media/'Fedora 7 i386 DVD'/Fedora/createrepo*.rpm
1б) ставим из командной строки
# cd /media/'Fedora 7 i386 DVD'/Fedora/
# rpm -ihv createrepo*
2) создаём папку
# mkdir /opt/fc7.local.repo
3) создаем репозиторий (? -c)
# createrepo -o /opt/fc7.local.repo -u file:///opt/fc7.local.repo/RPMS -c //opt/fc7.local.repo/CACHE -g /media/'Fedora 7 i386 DVD'/repodata/comps-f7.xml /media/'Fedora 7 i386 DVD'/Fedora
4а) копируем все rpm в каталог
# mkdir /opt/fc7.local.repo/RPMS
# cp /media/'Fedora 7 i386 DVD'/Fedora/* /opt/fc7.local.repo/RPMS
4б) делаем ссылки на рпм. Каждый раз вставлять диск надо будет (удобно если автомонт как прописалась автометка).
# ln -s /media/'Fedora 7 i386 DVD'/Fedora/*.rpm /opt/fc7.local.repo/RPMS
4в) в пункте 3 указываем -u file:///media/'Fedora 7 i386 DVD'/Fedora
5) для юма конфиг
/etc/yum.repos.d/local.repo
[local]
name=Fedora 7 LOCAL
baseurl=file:///opt/fc7.local.repo
enabled=1
gpgcheck=0

6) обновляем
yum clean all

linux, акустические параметры жёстких дисков (hdd acoustic parameters)

Прочитать значение:
# hdparm -M /dev/sda
/dev/sdb:
acoustic = 254 (128=quiet ... 254=fast)
Установить значение:
# hdparm -M 128 /dev/sda

20 февраля 2009 г.

linux lm_sensors

Например, в Fedora 10 ставим sensors так:
Ставим пакеты:
gnome-applet-sensors
lm_sensors

Настройки вида
MODULE_0=w83627hf
...
хранятся в /etc/sysconfig/lm_sensors, для его автогенерации надо запустить
# sensors-detect

14 января 2009 г.

linux: подсчитать количество строк кода в проекте

Например, чтобы подсчитать количество всех строк в файлах *.java внутри какого-либо каталога (рекурсивно, разумеется) надо сделать что-то типа такого:
$ find ~/workspace/project1/src -type f -name *.java -exec cat {} \; | wc -l
426610

Системные property в j2me, System.getProperty()

What are the defined J2ME system property names?
http://developers.sun.com/techtopics/mobility/midp/questions/properties/index.html

linux: сделать копию dvd из командной строки, создать и записать образ iso

Например, так:
dd if=/dev/dvdrw1 of=/tmp/ISO_FILE.iso
dvdrecord -v -dao -eject speed=4 blank=fast /tmp/ISO_FILE.iso

Вот пример для CD:
dd if=/dev/scd0 of=cdimage.iso
cdrecord -v dev=0,0,0 speed=2 -isosize cdimage.iso
Впрочем, вместо "dd" правильнее делать так:
readcd dev=0,0 f=cdimage.iso
Не читается лишние пустые сектора, корректируются ошибки итд.

Понятно, как посмотреть созданный образ - примонтировав его как loop раздел:
mount cdimage.iso -r -t iso9660 -o loop /mnt/cdrom

linux: md5 каталога рекурсивно

Как известно, md5sum создаёт сумму одного файла, вот так, например, можно заставить (без сторонних приблуд, типа md5deep) делать его рекурсивно:

8 января 2009 г.

windows в grub не на первом винте

Если на первом (по порядку) винте нет возможности разместить раздел с win или просто неохота насильно переставлять в bios диски, или просто несколько разделов с win, то можно для недвусмысленности оставить разделы как они определяются, а в настройках grub сделать map для разделов, переставить их виртуально. Что-то типа следующего.
[/boot/grub/menu.lst]
title Windows
rootnoverify (hd1,0)
map (hd0) (hd1)
map (hd1) (hd0)
makeactive
chainloader (hd1,0)+1
Что характерно, это с виду никак не влияет на порядок разделов в самой win-системе.