среда, 30 мая 2012 г.

Загрузка IMG-образов в VirtualBox

Захотелось мне посмотреть на свежую сборочку ChromeOS дабы быть в курсе текущих метаморфоз сия поделия. Скачал образ, но так как флешки под рукой не оказалось, решил запустить его в VirtualBox'е. Начал подключать RAW-образ (для заливания на флешку c помощью dd), да оказалось что VBox не понимает его ни как CD/DVD-образ, ни как образ жёсткого диска.

Как оказалось запустить RAW-образ можно, но в это будет уже не RAW, а VDI (или любой другой понятный VirtualBox'у формат). Да, всё верно, нужно конвертировать образ, для чего потребуется дополнительное место на жёстком диске:
 VBoxManage convertfromraw -format VDI [filename].img [filename].vdi  
Далее полученный образ подключаем как жёсткий диск к виртуальной машине и загружаемся с него.  Если у виртуальной машины несколько жёстких дисков (как в моём случае), то во время загрузки жмакаем F12 и выбираем загрузочный диск.

ЗЫ В итоге ChromeOS в виртуальной машине вела себя очень странно, надо будет найти флешку и поглядеть вживую.

суббота, 28 января 2012 г.

Ubuntu, pulseaudio и акустика 5.1

Поключил таки к домашнему компьютеру звук 5.1 и телевизор 40-дюймовый, в кинотеатр теперь ходить не надо ))

При просмотре фильма со звуковой дорожкой 5.1 сабвуфер бабахает очень даже прилично, но вот если начать воспроизводить любой стерео (т.е. двхканальный) поток, то pulseaudio отлично раскладывает его на 5 каналов (2 фронтальных, 2 тыловых и центральный), а про сабвуфер забывает... В итоге техно слушать по умолчанию убунта нам предлагает без хорошего баса.

Чтобы исправить это безобразие достаточно исправить в /etc/pulse/daemon.conf параметр enable-lfe-remixing с no на yes:
$ gksu gedit /etc/pulse/daemon.conf  
Найти соответствующий параметр, раскомментирвать его и изменить значение:
 enable-lfe-remixing = yes  
Далее надобно перезагрузить pulseaudio:
 killall pulseaudio  
Если в момент перезагрузки был запущен браузер, то его желаетльно перезагрузить дабы флэш перезагрузился и начал использовать новый инстанс pulseaudio

суббота, 26 ноября 2011 г.

SSH-туннель в обратную сторону

Допустим у нас есть некая закрытая сеть (работа), доступ в интернет из которой организован через NAT. А нам нужно сидя дома пробраться к сервису в этой закрытой сети из вне. За NAT-ом есть сотрудник, который готов посодействовать нам в подключении к закрытому сервису.

Суть действий проста: сотрудник подключается к нашей домашней машине по SSH и пробрасывает через себя туннель от нас до необходимого сервиса (допустим ssh)

ssh -R <порт для туннеля на нашей машине>::<порт закрытого сервиса> <пользователь на нашей машине>@

Ключ -R говорит о необходимости создать обратный туннель.

Номер порта на нашей машине должен быть больше 1024, в противном случаее сотруднику нужно будет выдать пароль рута на вашей машине.

Чтобы сотруднику жилось спокойней и открытый терминал ему не мешал он может добавить ключи -TfN. Пример готовой комманды:
ssh -TfN -R 2000:192.168.3.1:22 user@10.10.10.2

После выполнения этой команды сотрудником мы можем обратиться на свой локальный порт 2000 и увидеть там ssh сервера в закрытом сегменте.

Ещё про ssh-туннелирование:

пятница, 30 апреля 2010 г.

Отключение проверки SSL сертификата в Groovy

def init = {servletContext ->
// Disable certificate verification
def trustManagerMethods = [
getAcceptedIssuers: { null },
checkClientTrusted: {a, b -> },
checkServerTrusted: {a, b -> }
]

def hostnameVerifierMethods = [
verify: {a, b -> true }
]

def trustManager = ProxyGenerator.instantiateAggregate(trustManagerMethods, [X509TrustManager])
TrustManager[] trustAllCerts = (TrustManager[]) [trustManager]

// Install the all-trusting trust manager
SSLContext sc = SSLContext.getInstance("SSL")

def hostnameVerifier = ProxyGenerator.instantiateAggregate(hostnameVerifierMethods, [HostnameVerifier])
HostnameVerifier hv = (HostnameVerifier) hostnameVerifier

sc.init(null, trustAllCerts, new java.security.SecureRandom())
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory())
HttpsURLConnection.setDefaultHostnameVerifier(hv)
}


Взято тут: http://groovy-grails.blogspot.com/2009/07/javaxnetsslsslhandshakeexception.html

суббота, 27 февраля 2010 г.

Вырезание звука из видео-файла

Собственно захотелось мне нарезать на музыкальные треки замечательный фильм Ивана Вырыпаев "Кислород". Чтобы начать процесс нарезания нужно сначала извлечь звуковую дорожку из видео-файла с фильмом. Это очень легко можно сделать с помощью mplayer'a:

mplayer -dumpaudio Kislorod.avi -dumpfile kislorod.mp3

И вауля, у нас есть файлик со звуковой дорожкой, можно приступать к нарезке на музыкальные композиции.

пятница, 12 февраля 2010 г.

DNS-сервера МТС

Теперь столкнулся с проблемой получения DNS-серверов МТС'а при использовании их говёного модема за 900 рублей. Чтобы не забыть сохраню их здесь:

nameserver 10.17.128.1
nameserver 217.66.145.1

Grails, MySQL и знаки вопроса

Разобравшись немного с Grails решил сменить встроеную базу данных на MySQL и обнаружил что имеется проблема с русской кодировкой, а именно: русские символы сохраняются в базе данных знаком вопроса.

Чтобы это победить нужно чтобы сразу после соединения с базой данных разрабатываемое приложение выполнило запрос SET NAMES 'utf8', а потом уже делало всё остальное.

В файле DataSource.groovy это выглядит следующим образом:

development {
dataSource {
dbCreate = "update" // one of 'create', 'create-drop','update'
url = "jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8"
}
}

Вуаля! Теперь всё работает!