Search
Write a publication
Pull to refresh
83
0
Павел @Paul

User

Send message

Бинарное обновление FreeBSD 6.2 до 8.0

Reading time8 min
Views14K
Года два назад я поднимал знакокому сервер для трекера местной локалки. Вопрос выбора ОС не стоял в принципе, естественно FreeBSD, а версия была взята актуальная на тот момент — 6.2 i386. Но вот состоялся релиз FreeBSD 8.0, и я решил попробовать обновиться до 8-й версии на этом сервере, все равно трекер уже полмесяца не работал из-за битой базы при очередном внезапном отключении питания, а за сервером никто не следил, поэтому пару часов даунтайма никому не помешают.
Читать дальше →

Шифрованная файловая система в файле: готовый рецепт

Reading time2 min
Views4.9K
Picamatic - upload your imagesНа хабре уже было множество статей о том, как безопасно передать данные, защитив канал, или зашифровав файл с данными. Но часто хранить данные в файле не очень удобно (например, в файле не удобно хранить SVN-репозиторий, или maildir с почтой).

Под катом ещё одно решение, которое я нахожу весьма удобным, возможно оно пригодится ещё кому-то.

Читать дальше →

Программирование Magic: the Gathering — §1 Мана

Reading time19 min
Views4.3K

Хочется начать посты про программирование Magic: the Gathering (M:tG), и начнем мы пожалу с самого простого – с концепции «маны». Мана – это то, чем оплачиваются все заклинания. Несмотря на то, что с виду маны всего 5 типов, на самом деле все чуть-чуть сложнее. Давайте попробуем разобраться.


Читать дальше →

Повышение работоспособности: как я делаю работу, которую делать не хочу

Reading time3 min
Views11K
image Сегодня я продолжаю свою тему и пишу пост о том, как я «заставляю» себя делать скучную, нудную и неприятную работу.

В работе абсолютного большинства людей есть задачи, которые выполнять не хочется, но надо. Решается эта проблема (если решается) обычно методом «заставить себя», или «через не могу». Так происходит, потому что все мы приучены к этому с раннего детства. Поэтому мы всегда мучаем себя, делая то, что нам ненавистно. Сопровождается такой выход большим количеством негативных эмоций. А это наши нервы, и — как следствие — наше здоровье.

Так что же делать? Ответ я нашёл не так давно, и теперь хочу поделиться с Хабрасообществом.

Читать дальше →

DNS Tunneling via iodine: сыр действительно бесплатный

Reading time3 min
Views26K
Есть:
— отключенный за неуплату интернет (adsl, lan, etc)
или
— нешифрованная wi-fi сеть c закрытым интернетом, но работающим dns
или
— очень строгий firewall с открытым dns

Хочется:
полноценный интернет, пусть даже очень медленно
Как?

Microsoft .NET Architecture Day: Разработка пользовательского интерфейса

Reading time1 min
Views5.3K
2 июня 2009 года группа Microsoft по работе c компаниями-разработчиками провела семинар для архитекторов и старших разработчиков: .NET Architecture Day «Разработка пользовательского интерфейса — современные подходы».

Я (Дмитрий Сатин) и Андрей Сикорский провели на семинаре 3-часовую лекцию, посвященную стандарту «Human-centered design for interactive systems» (ISO 9241-210).



Получить презентацию, использованную на лекции, можно по запросу на адрес hcd@usabilitylab.net

Фотографии

Обзор Jabber-клиентов для мобильных телефонов с поддержкой Java (J2ME)

Reading time2 min
Views20K
В последние время многие решили перейти на Jabber. И тут же возникает вопрос какой Jabber клиент выбрать для мобильного телефона? Не так давно был обзор существующих решений для Symbian 9. К сожалению, смартфоны есть не у всех — поэтому представляю краткий обзор Jabber-клиентов для мобильных телефонов с поддержкой Java.

Читать дальше →

DVCS and DAGs

Reading time11 min
Views5.7K
Перевод статьи Эрика Синка (Eric Sink) — DVCS and DAGs (Part 1 and Part 2).

Прим. переводчика: В этой статье я буду ис­поль­зо­вать ори­гиналь­ные анг­ло­языч­ные сокращения DVCS и DAG для обозначения расп­ре­делён­ных систем контроля версий (Distributed Version Control System — DVCS) и нап­равлен­ных ацикличных графов (Directed Acyclic Graph — DAG).
Читать дальше →

Троды плудов

Reading time1 min
Views844
На официальном сайте группы «Несчастный Случай» стали доступны для свободного скачивания все альбомы коллектива:
  1. Простые числа (2006 г.)
  2. Zirkus (2004 г.)
  3. Последние деньки в раю (2003 г.)
  4. Чернослив и курага (2000 г.)
  5. Cамый сок (1998 г.)
  6. Это любовь (1997 г.)
  7. Межсезонье (1996 г.)
  8. Mein Lieber Tanz (1995 г.)
  9. Троды плудов (1994 г.)

Для загрузки доступны как отдельные песни, так и весь альбом одним файлом.

читать дальше

LISP-программирование как жанр искусства

Reading time1 min
Views5.7K
Нереальный, фееричный перфоманс с использованием LISP и OpenGL.
Поначалу ничего непонятно, но все завораживающее действо начинается с 5 минуты где-то. Может быть это и есть один из видов искусства будущего?


Уже представляю себе «выступает заслуженный LISP-ист России, лауреат международных премий Иван Лямбдин»

Атака на беспроводные сети. Чуть меньше теории и чуть больше практики

Reading time6 min
Views316K
image
В общих чертах теорию и процесс атаки хорошо описал юзер n3m0 в своих статьях «Атаки на беспроводные сети», поэтому я не буду заострять внимание на многих теоретических моментах.
Я же хочу описать самые простейшие способы обхода защиты, но более подробно.
Читать дальше →

Audiotag.info — новый сервис распознавания музыки

Reading time2 min
Views43K


Александр Радзишевский, владелец небезызвестого ресурса www.websound.ru, на днях открыл сервис AudioTag, позволяющий узнать имя исполнителя и название композиции по небольшому фрагменту композиции — достаточно загрузить лишь 15-30 секундный отрывок (или композицию целиком).

В основе сервиса лежит сложный механизм распознавания аудио, объединяющий технологию аудио-отпечатков и большую базу аудио-музыкальную данных. Когда вы загружаете файл, специальный алгоритм преобразует его в так называемый «аудио-отпечаток», который и используется для поиска в базе данных. В результате такого распознавания обнаруживаются один или несколько треков-кандидатов, совпадающих с обработанным файлом с той или иной вероятностью.

— алгоритм скорее не распознАет трек, чем распознает его неверно
— алгоритм распознаёт треки с некоторой вероятностью
— в случае нахождения нескольких вариантов, результат сортируется по этой вероятности
— распознаются ускоренные и зашумлённые треки
— музыкальная база содержит более миллиона треков, в том числе немало русских
— интеграции с плеерами (пока?) нет, только онлайн
— денег не берут

Секреты алгоритма создания слепков и источника музыкальной базы автор не раскрывает. Однако, что касается первого — они уже существуют (хоть я и не понимаю как это чудо работает, но по форме это что-то вроде MD5), а по второму вопросу, возможно, были задействованы ресурсы какого-нибудь «знакомого» онлайн-магазина — всё-таки миллион треков это очень много, да и вряд ли Алекс держит в личном архиве столько попсы :)

Читать дальше →

10 трюков в командной строке, о которых вы не знали. Честное слово.

Reading time5 min
Views21K

1. Простой способ перехватить вывод и ошибки


Хотите направить stdout и stderr в один файл?
command &> file
Может вы разбираетесь в некой программе при помощи strace, и желали бы видеть системные вызовы вместе с ошибками программы?
strace badapp &> errors_and_output

Плюсы: легко запоминается, и проще чем
Читать дальше →

Начало пути — Часть 1. Программные решения.

Reading time8 min
Views29K
Доброго времени суток всем читателям нашего блога! Это первая статья из серии «Начало пути», в которой я расскажу о программной части нашей маленькой звукозаписывающей «студии». В течении недели будет опубликовано еще три статьи — одна про «железо», вторая про базовые термины, которые могут нам повстречаться и еще одна про основы сведения. Эта серия в первую очередь полезна новичкам, знатоки скорее всего ничего полезного для себя не откроют.
Итак, поехали!

Избавляемся от дополнительных настроек jabber-клиента в Google apps

Reading time2 min
Views7.1K
Судя по количеству плюсов к посту про использование google apps в качестве сервера jabber эта тема волнует хабрапользователей. Поэтому я решил внести свои пять копеек.

В документации гугла сказано, что при настройке кастомного клиента нужно вводить в свойствах соединения сервер talk.google.com и порт. Это очень не удобно, так как надо всё время помнить эти настройки, да и затрудняет настройку клиента вашими родственниками/знакомыми, которых пугает только одно слово порт :) Почему-то в документации к google apps этого не сказано, но прописать адрес и порт, которые должны быть использовать при подключении, можно в srv записях dns, да именно там, где вы указаывали адреса для федеративных сетей.

Добавляем запись типа:

_xmpp-client._tcp.yourdomain.com. IN SRV 5 0 5222 talk.google.com.


И вауля, клиент коннектится безо всяких танцев и дополнительных настроек.
некоторые технические замечания под катом

Subversion: cлияние переименований файлов

Reading time3 min
Views3.5K
— Зачем ты, Белка, летишь за мной, Кабаном?
— Не знаю, Кабан! Приказ Хорька. Как понял? Приём.
— Ни хера не понял! Какого Хорька, Белка? Я Кабан. Кто такой Хорёк? Кто это? Приём.
— Кабан, ты дятел! Как понял? Приём.
— Понял тебя, Белка. Я — Дятел. Повторяю вопрос про хорька. Кто это?
— Кабан, сука, ты всех заманал, лети вперёд молча! Конец связи.
Виктор Шендерович

Как известно, Subversion не умеет отслеживать переименования файлов. Согласно документации, команда svn move равносильна svn copy с последующим svn delete. Такое поведение вызывает большие проблемы при слиянии веток. Рассмотрим способы их решения.
Читать дальше →

Владельцам нетбуков посвящается: Unetbootin

Reading time1 min
Views5.5K
Программа уже упоминалась на Хабре в блоге OpenSource

Unetbootin (http://unetbootin.sourceforge.net/) позволяет создать загрузочную USB-флешку из практически любого дистрибутива Linux/BSD. Впрочем, можно создать и загрузочный жесткий диск.
Существуют версии как для Linux, так и для Windows.
Работать просто до неприличия:
Выбрали источник → Выбрали загрузочное устройство → Нажали OK.
При этом в качестве источника можно выбрать дистрибутив и версию, программа сама скачает нужное. Можно выбрать ISO, а можно указать ядро и initrd руками с нужными опциями.

Окошко:
screenshot

PS. Поддерживается даже только что вышедшая Ubuntu 8.10.

Tribler сделал торрент-трекеры архаизмом

Reading time1 min
Views14K
Несколько европейских университетов и Гарвард продолжают работу над совместным мега-проектом Tribler по созданию идеального BitTorrent-клиента. Об этом проекте мы уже несколько раз упоминали на Хабре, например, после разработки платёжной системы, основанной на взаимозачёте трафика (гигабайты вместо долларов, которыми можно расплачиваться за товары), а также после внедрения там системы рекомендаций.

И вот сейчас разработчики объявили (PDF), что в новой версии клиента Tribler 4.1.0 реализована технология полноценной децентрализованной работы. Вся статистика об объёмах закачек и раздач, а также информация о рейтингах и привилегиях, сохраняется в распределённой клиентской сети без помощи торрент-трекеров, при этом есть система социальных рекомендаций по протоколу Buddycast, что устраняет угрозу спама. Искать новые .torrent-файлы можно напрямую на компьютерах других пользователей, опять же без нужды в торрент-трекерах.
Читать дальше →

Tip: свои кнопки в верхнем меню Opera

Reading time1 min
Views1.8K
image

Вот так компактно выглядит моя Opera. Достигается это простым трюком: вернее меню отключаем, вместо него включаем «Main Bar», на который накидываем кнопки-аналоги нужных пунктов меню, плюс любые полезные штуки.

P.S. Если названия кнопок слишком длинные (типа «Перевод на русский (PROMPT)»), то можно выйти из оперы и отредактировать имена в ~/.opera/toolbar/*.ini. Возможно есть более простой способ, но я его не нашёл.

Crash dump'ы и KeCapturePersistentThreadState

Reading time2 min
Views2.1K
Я тут обнаружил очень занятную недокументированную функцию, экспортируемую ядром, на которую нет ссылок внутри ядра, но которая делает весьма занятную вещь. А именно, записывает в переданный кусок памяти полноценный minidump на данный момент времени.
Весьма полезно с учетом того, что там (в дампе) есть оффсеты неэкспортируемых структур типа PsLoadedModuleList, которые могут пригодиться.
Спасибо Freeman за помощь)

ULONG
NTAPI
KeCapturePersistentThreadState(
PCONTEXT Context,
PKTHREAD Thread,
ULONG BugCheckCode,
ULONG BugCheckParameter1,
ULONG BugCheckParameter2,
ULONG BugCheckParameter3,
ULONG BugCheckParameter4,
PVOID VirtualAddress
);


Входные параметры:
Context — текущий контекст (можно от балды, нужно лишь заполнить EIP & ESP)
Thread — текущий поток. можно указать NULL, тогда она сама возьмет текущий
BugCheckCode, ParametersX — багчек код и аргументы, которые она запишет в дамп.
VirtualAddress — адрес выделенных 16 страниц памяти (64кб), куда она положит аккуратно готовенький крешдамп.

Пример:

Заголовок дампа:
typedef struct _DUMP_HEADER {
/* 00 */ ULONG Signature;
/* 04 */ ULONG ValidDump;
/* 08 */ ULONG MajorVersion;
/* 0c */ ULONG MinorVersion;
/* 10 */ ULONG DirectoryTableBase;
/* 14 */ PULONG PfnDataBase;
/* 18 */ PLIST_ENTRY PsLoadedModuleList;
/* 1c */ PLIST_ENTRY PsActiveProcessHead;
/* 20 */ ULONG MachineImageType;
/* 24 */ ULONG NumberProcessors;
/* 28 */ ULONG BugCheckCode;
/* 2c */ ULONG BugCheckParameter1;
/* 30 */ ULONG BugCheckParameter2;
/* 34 */ ULONG BugCheckParameter3;
/* 38 */ ULONG BugCheckParameter4;
/* 3c */ CHAR VersionUser[32];
/* 5c */ UCHAR PaeEnabled;
UCHAR NotUsed[3];
/* 60 */ PVOID KdDebuggerDataBlock;
} DUMP_HEADER, *PDUMP_HEADER;


Использование функции: www.everfall.com/paste/id.php?mkgmkfg1a057

Кодес получает дамп, показывает адерса MmPfnDatabase, PsActiveProcessHead, PsLoadedModuleList и сбрасывает дамп на диск. Дамп можно спокойно запихать в WinDbg и изучать

Вообщем, весьма занятная штуковина…

Надо будет переписать свой gr8lkd (http://gr8lkd.googlecode.com/) с использованием этой функции.

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity