Сейчас существует множество алгоритмов сжатия информации. Большинство из них широко известны, но есть и некоторые весьма эффективные, но, тем не менее, малоизвестные алгоритмы. Эта статья рассказывает о методе арифметического кодирования, который является лучшим из энтропийных, но тем не менее мало кто о нём знает.
Джони Дэп @Godless
Супермэн
Пробуем бесплатную виртуализацию со специями в Ubuntu 11.04 amd64
4 min
30KСпеция или SPICE (сокр. от англ. «Simple Protocol for Independent Computing Environments», то есть «Простой протокол для независимой вычислительной среды») — открытый протокол удаленного доступа к компьютеру или виртуальной машине.
Использование SPICE позволяет не только получить доступ к экрану, а также к буферу обмена и звуковой карте. В настоящее время протокол SPICE находится в стадии интенсивной разработки, несмотря на это его уже сегодня можно попробовать использовать в виртуальной машине под управлением модифицированного гипервизора KVM вместо базового открытого протокола VNC (Virtual Network Computing), используемого по-умолчанию.
+15
Рециркуляционные нейронные сети
4 min
24KРециркуляционные нейронные сети представляют собой многослойные нейронные сети с обратным распространение информации. При этом обратное распространение информации происходит по двунаправленным связям, которые имеют в различных направлениях разные весовые коэффициенты. При обратном распространении сигналов, в таких сетях осуществляется преобразование их с целью восстановления входного образа. В случае прямого распространения сигналов происходит сжатие входных данных. Обучение рециркуляционных сетей производится без учителя.
+56
Дозаправка в дороге — мобильная USB зарядка
2 min
70KПочти все современные гаджеты могут заряжаться от USB порта компьютера или зарядки с таким портом.
Мода на компактные устройства привела к тому, что аккумуляторы в них не слишком емкие. Например мой HTC HD2 едва выдерживает рабочий день при активном использовании, а в режиме GPS навигатора и того меньше. В итоге приходится бегать от зарядки до зарядки или носить с собой запасные аккумуляторы к каждому устройству. Но комплект разных аккумуляторов обойдется недешево да и замена аккумулятора на прогулке — это минут 5: выключить, сменить аккумулятор, включить, запустить софтинку, дождаться пока снова найдет спутники. Неприятно.
Я покажу как сделать USB зарядку, которую можно взять с собой.
«RMPS»
Она позволяет зарядить через стандартный USB порт все, что ест не больше 3А, а сама питается постоянным напряжением примерно от 7.2В до 22В. (авиамодельные, автомобильные аккумуляторы, все, что есть под рукой).
Себестоимость порядка 280-300 рублей. Времени на изготовление примерно 1 час. Размер — чуть больше батарейки АА.
Мода на компактные устройства привела к тому, что аккумуляторы в них не слишком емкие. Например мой HTC HD2 едва выдерживает рабочий день при активном использовании, а в режиме GPS навигатора и того меньше. В итоге приходится бегать от зарядки до зарядки или носить с собой запасные аккумуляторы к каждому устройству. Но комплект разных аккумуляторов обойдется недешево да и замена аккумулятора на прогулке — это минут 5: выключить, сменить аккумулятор, включить, запустить софтинку, дождаться пока снова найдет спутники. Неприятно.
Я покажу как сделать USB зарядку, которую можно взять с собой.
«RMPS»
Она позволяет зарядить через стандартный USB порт все, что ест не больше 3А, а сама питается постоянным напряжением примерно от 7.2В до 22В. (авиамодельные, автомобильные аккумуляторы, все, что есть под рукой).
Себестоимость порядка 280-300 рублей. Времени на изготовление примерно 1 час. Размер — чуть больше батарейки АА.
+103
О бедном Александреску замолвлю я слово
6 min
20KДорого времени суток!
Прочитал я недавно статью одну про Template metaprogramming в С++. И был там такой комментарий: «Ровно то же самое с тем же уровнем настраиваемости можно было сделать на интерфейсах, реализациях, на фабриках, на дефайнах, на конфигах и на еще целой куче вещей». И вообще, мораль статьи и обсуждения — эти шаблоны от Александреску в жизни не шибко-то и нужны.
Я вспомнил свою задачу, где мне его (Александреску) идея об ортогональном проектировании здорово помогла. Хочу с вами ею поделиться.
Прочитал я недавно статью одну про Template metaprogramming в С++. И был там такой комментарий: «Ровно то же самое с тем же уровнем настраиваемости можно было сделать на интерфейсах, реализациях, на фабриках, на дефайнах, на конфигах и на еще целой куче вещей». И вообще, мораль статьи и обсуждения — эти шаблоны от Александреску в жизни не шибко-то и нужны.
Я вспомнил свою задачу, где мне его (Александреску) идея об ортогональном проектировании здорово помогла. Хочу с вами ею поделиться.
+45
Активная защита FreeBSD на основе логов, sh и cron
6 min
10KПриветствую всех администраторов FreeBSD!
Настроив свой второй сервер на FreeBSD и перенеся туда важную корпоративную информацию, я задумался о защите. Не буду повторяться про антивирусы, брандмауэры и дополнительные полезные комплексы — ни один из этих инструментов не решал мою задачу.
Задача возникла сама собой, при просмотре логов:
в них постоянно попадала информация о неудачных попытках подобрать пароль к exim, к серверу и к веб-почте соответственно. Рано или поздно злоумышленники могут пароль подобрать, поэтому их нужно как-то остановить, например, добавив их IP-адрес в правила ipfw. А на веб-сервере еще и пытались найти несуществующие каталоги и файлы, относящиеся к администрированию, типа phpmyadmin, очевидно, чтобы проверить их на существующие уязвимости.
Настроив свой второй сервер на FreeBSD и перенеся туда важную корпоративную информацию, я задумался о защите. Не буду повторяться про антивирусы, брандмауэры и дополнительные полезные комплексы — ни один из этих инструментов не решал мою задачу.
Задача возникла сама собой, при просмотре логов:
/var/log/exim/rejectlog
/var/log/auth.log
/var/log/apache22/httpd-error.log
в них постоянно попадала информация о неудачных попытках подобрать пароль к exim, к серверу и к веб-почте соответственно. Рано или поздно злоумышленники могут пароль подобрать, поэтому их нужно как-то остановить, например, добавив их IP-адрес в правила ipfw. А на веб-сервере еще и пытались найти несуществующие каталоги и файлы, относящиеся к администрированию, типа phpmyadmin, очевидно, чтобы проверить их на существующие уязвимости.
+29
Настройка репликации в SQL 2008
3 min
60KВ моем примере я буду настраивать одностороннюю репликацию на уровне транзакций. Надо иметь ввиду, что существую и другие типы репликации данных SQL.
Предварительно необходимо удостовериться, что компонент SQL Server Replication установлен на обоих серверах.
1.1. Указываем базу, данные которой мы хотим реплицировать на другой сервер
Предварительно необходимо удостовериться, что компонент SQL Server Replication установлен на обоих серверах.
1. На сервере-распространителе создаем локальную публикацию (local publication).
1.1. Указываем базу, данные которой мы хотим реплицировать на другой сервер
+10
SQUID для ленивых. Облегчаем себе жизнь
6 min
159KДобрый день, уважаемые Хабрапользователи, в связи со сложившейся тенденцией к изучению всем известного прокси сервера SQUID, я бы хотел предложить вариант некой типовой настройки небольшой связки, которая будет полезная для начинающих системных администраторов небольших контор, ну или просто для тех, кому лень разбираться. Данная статья ни в коем случае не претендует на глобальный мануал на все случаи жизни — как я уже и сказал это всего лишь обобщенный частный случай.
+25
Отладка драйверов под Windows: VirtualBox+WinDbg
3 min
22KПредисловие
Однажды мне понадобилось написать драйвер под Windows XP SP2. Сразу встал вопрос отладки. Уж очень не хотелось использовать мудреный SoftIce, ребутиться при кадждой ошибке или делать откаты. Поэтому было решено использовать виртуалку VirtualBox, которой я частенько пользуюсь и характеристиками которой вполне доволен, и отладчиком Windows Debugger от Microsoft. Через несколько часов в окошке WinDbg радостно замаячили строчки на Си, и было решено сделать «напоминалку», которая получилась неплохим «HowTo». Итак, начнем…
+48
Проекты Open Source на благо человечества
3 min
1.4KВ конце сентября в Париже прошла крупная конференция Open World Forum, там впервые была организована секция Humanitarian FOSS, посвящённая «гуманитарным» open source проектам. Софт подобного рода создаётся по-настоящему бескорыстно, с осознанием огромной важности дела. Именно такие вещи Тим О'Рейли называет работой, имеющей значение (Stuff that Matters) — которая важнее денег.
«Гуманитарные» системы делятся на два класса. Первые помогают спасать человеческие жизни в критических ситуациях. Например, свободное ПО активно использовалось во время помощи пострадавшим от цунами в Японии. Ещё один пример — активисты в Тунисе использовали open source инструменты для сохранения анонимности и коммуникации в интернете (в условиях тоталитарного режима это тоже вопрос жизни и смерти).
Второй класс — программы для образования, здравоохранения и т.д.
«Гуманитарные» системы делятся на два класса. Первые помогают спасать человеческие жизни в критических ситуациях. Например, свободное ПО активно использовалось во время помощи пострадавшим от цунами в Японии. Ещё один пример — активисты в Тунисе использовали open source инструменты для сохранения анонимности и коммуникации в интернете (в условиях тоталитарного режима это тоже вопрос жизни и смерти).
Второй класс — программы для образования, здравоохранения и т.д.
+25
Стоит ли быть «успешным»?
6 min
48KКак надоели эти тематические статьи о повышении результативности, мотивации и прочей чепухе. Зачем люди их пишут? Чтобы помочь тем, кто запутался в себе? Для тех, кому тяжело сосредоточиться? Вряд-ли это так.
Современная жизнь диктует нам, что все нужно делать быстро, добиваться максимальной эффективности. Непременно нужно быть очень успешным. Нужно двигаться к цели, каждый день, каждый час, ежеминутно. Оставив все лишнее, бросить все силы на достижение результата. Иначе нет смысла жить.
Современная жизнь диктует нам, что все нужно делать быстро, добиваться максимальной эффективности. Непременно нужно быть очень успешным. Нужно двигаться к цели, каждый день, каждый час, ежеминутно. Оставив все лишнее, бросить все силы на достижение результата. Иначе нет смысла жить.
+261
Разбор атак на части: SYN-flood
6 min
55KSpoofed SYN — атака, при которой заголовки пакетов подделывается таким образом, что место реального отправителя занимает произвольный либо несуществующий IP-адрес.
Так как по сути SYN является частым инструментом "интенсивной конкурентной борьбы" и — в то же время — большинство решений DDoS mitigation показывают впечатляющую эффективность именно на этом виде атак, то и мы начнем c SYN-flood, рассмотрев spoofed-вид атаки, как самый грозный из них.
+44
Система мониторинга MongoDB (MMS)
2 min
6.1KНесколько часов назад ко мне в почту упало письмо с уведомлением о новом сервисе от компании 10gen, спонсоров MongoDB. Этот облачный сервис позволяет мониторить ваши сервера и слать алерты, если что-то пойдет не так.
+62
Создаем свой SVN сервер: 3$ и 30 минут
4 min
14KМногих хабрачитателей иногда волнует вопрос хостинга SVN. В интернете полно вариантов захостить SVN репозиторий, с ценой порядка 10-15уе в месяц, но смущает одно: хостинг репозитория — намного более ответственное дело, нежели хостинг сайта. В коде — ваши «сверхценные идеи», от аптайма сервера и надежности бэкапов напрямую зависит работа вашего бизнеса. Некоторые выбирают все же хостить SVN в серьёзных компаниях. Хорошее сравнение по параметрам тут: http://www.svnhostingcomparison.com/, open-source кстати можно захостить в неплохом месте на букву G ;-).
Другие же, как и я, решают хостить SVN на своём VDS / Dedicated сервере. На этом вопросе я и остановлюсь, рассказав заодно немного о вариантах запуска/настройки svn сервера (в том числе относительно новых — шифрование/аутентификация SASL и хранение в FS). Выльеться все это вам в 3-4$/месяц, в полный контроль за бэкапами и доступом к серверу. Пожертвовать придется 30 минут драгоценного времени на настройку.
Целевая аудитория: начальный — средний уровень опыта работы с Linux.
PS. Я в курсе что FreeBSD is not Linux ;-)
Другие же, как и я, решают хостить SVN на своём VDS / Dedicated сервере. На этом вопросе я и остановлюсь, рассказав заодно немного о вариантах запуска/настройки svn сервера (в том числе относительно новых — шифрование/аутентификация SASL и хранение в FS). Выльеться все это вам в 3-4$/месяц, в полный контроль за бэкапами и доступом к серверу. Пожертвовать придется 30 минут драгоценного времени на настройку.
Целевая аудитория: начальный — средний уровень опыта работы с Linux.
PS. Я в курсе что FreeBSD is not Linux ;-)
+67
Просмотр фильмов на android-устройствах с домашнего сервера
2 min
97KЗдравствуйте, уважаемые хабрачитатели.
Есть у меня скромненький hand-made домашний сервер:
Работает все это под убунтой и имеет примерно такой конфиг: Intel Core Quad, 4Gb памяти и RAID 5 из 4-х 2TB дисков.
Контент с этого сервера забирают домашние компы (samba), медиаплеер (samba), телевизоры (DLNA). И все не давала мне покоя идея смотреть вновь вышедшие серии сериалов, да и некоторые фильмы, на телефоне, лежа в кровати на сон, так сказать, грядущий. Ноутбук — неудобно ввиду его размера и опасности уронить с кровати в момент непредвиденного засыпания. Перерыл много форумов, программ и т.п., но решения так и не нашел.
Есть у меня скромненький hand-made домашний сервер:
- Файлопомойка
- Торрентокачалка
- Архив фотографий и видео
Работает все это под убунтой и имеет примерно такой конфиг: Intel Core Quad, 4Gb памяти и RAID 5 из 4-х 2TB дисков.
Контент с этого сервера забирают домашние компы (samba), медиаплеер (samba), телевизоры (DLNA). И все не давала мне покоя идея смотреть вновь вышедшие серии сериалов, да и некоторые фильмы, на телефоне, лежа в кровати на сон, так сказать, грядущий. Ноутбук — неудобно ввиду его размера и опасности уронить с кровати в момент непредвиденного засыпания. Перерыл много форумов, программ и т.п., но решения так и не нашел.
+40
Стабильное вещание IPTV через VLC
8 min
61KС IPTV пришлось познакомиться поближе, когда в компании интернет-провайдера где я работал, решили организовать вещание IPTV. Выяснилось, что вещание осуществляется в linux и программой vlc, которая по слухам единственная в своем роде. Была установлена тарелка и DVB-карта SkyStar2, которая предположительно должна была без проблем заработать в linux'e. Так и было со всеми новыми машинами, где была установлена ubuntu server. На Debian заработало только после обновления ядра. Настройка прошла относительно легко, благо на то время уже было несколько статей на эту тему и документация к vlc была тоже очень полезна. После запуска начались некоторые проблемы с пропаданием звука и видео на каналах и другие проблемы, описанные ниже. После их появления были написаны скрипты, устраняющие эти проблемы. Сейчас на них работает 3 сервера с 5 dvb-картами в общей сложности и вещается 23 канала с 3х спутников. Под катом — перечисление проблем, которые могут появиться после запуска вещания IPTV через VLC в Linux и то как с ними бороться. Бороться будем с помощью bash.
+46
Три редкоиспользуемые оси в XPath
2 min
80KОсновная мощь языка XPath заключается в осях, позволяющих добраться до любого элемента в исходном документе. Рассмотрим применение таких редкоиспользуемых осей, как ancestor, descendant и self.
Задача: получить атрибут id элемента-«прадеда» foo.
Обычно в таких случаях начинают рисовать лестницы:
Такая запись плоха тем, что малопонятна без знания исходного xml. Автор рекомендует в подобных случаях использовать более информативное выражение:
Эта запись не только даёт представление об искомом элементе, но и продолжает работать даже в том случае, когда текущий элемент изменил своё положение в дереве.
ancestor
Задача: получить атрибут id элемента-«прадеда» foo.
Обычно в таких случаях начинают рисовать лестницы:
../../../@id
Такая запись плоха тем, что малопонятна без знания исходного xml. Автор рекомендует в подобных случаях использовать более информативное выражение:
ancestor::foo[1]/@id
Эта запись не только даёт представление об искомом элементе, но и продолжает работать даже в том случае, когда текущий элемент изменил своё положение в дереве.
+59
Защита от DDOS атаки подручными средствами. Получение доступа к своему серверу
4 min
77KЗа последнее время, наш сайт часто подвергается достаточно мощным DDOS атакам, к слову последняя атака была самой крупной за последнее время, размер ботнета по нашим оценкам — около 10 тысяч машин, мощность — 100 Mbits/s.
Атаку заметила даже Лаборатория Касперского, и предложила свою помощь в отражении, за что им спасибо. Правда к тому времени мы самостоятельно нашли решение, которое блокирует атаку. Собственно про это решение и пойдет речь.
Все началось в прошлую пятницу в пять часов вечера, и продолжалось до обеда в понедельник. Выходные прошли, за увлекательным занятием по отстрелу ботов. Пришлось немного попотеть, пока нашлось рабочее решение для противодействия атаке.
Атака была типа HTTP Flood. Система на которой у нас работает сайт — Apache под Linux. Мы написали несколько скриптов, которые будут приведены в тексте статьи. В принципе аналогичный подход можно применять и для Windows/IIS.
Попытаюсь рассказать, какие основные шаги мы сделали для отражения атаки, и какие проблемы возникали по ходу:
Атаку заметила даже Лаборатория Касперского, и предложила свою помощь в отражении, за что им спасибо. Правда к тому времени мы самостоятельно нашли решение, которое блокирует атаку. Собственно про это решение и пойдет речь.
Все началось в прошлую пятницу в пять часов вечера, и продолжалось до обеда в понедельник. Выходные прошли, за увлекательным занятием по отстрелу ботов. Пришлось немного попотеть, пока нашлось рабочее решение для противодействия атаке.
Атака была типа HTTP Flood. Система на которой у нас работает сайт — Apache под Linux. Мы написали несколько скриптов, которые будут приведены в тексте статьи. В принципе аналогичный подход можно применять и для Windows/IIS.
Попытаюсь рассказать, какие основные шаги мы сделали для отражения атаки, и какие проблемы возникали по ходу:
+20
Виджет «Бинарные часы» для Awesome
8 min
5.1KКак я дошел до жизни такой
Все началось с перехода на новое место работы. Хотя, нет… Все началось
+38
Opensource-проект с нуля
2 min
22KДолгое время боялся создавать этот топик, но всё же решился. Надеюсь, что не зря. Периодически на хабре и не только на нём появляются вопросы о том, к какому бы opensource-проекту присоединиться (1, 2, 3, 4, ...etc), ответов на которые к моему удивлению не много. У меня периодически появляется свободное время и хочется поучаствовать в одном из таких проектов. И я пытался, слал pull request'ы в некоторые проекты на гитхабе, их принимали, начинал какие-то свои проекты и так и не доводил их до конца. Но это всё не то…
… Хочется собрать несколько человек, обсудить и создать какой-то интересный проект, пусть без революционной идеи, пусть без новизны, пусть без профита, но свой. Чтобы видеть зарождение с нуля, видеть новые коммиты, добавляющие функциональность, читать чужой код и чужие комментарии, учась чему-то новому, получать опыт, обсуждать, спорить. Хочется потом иметь возможность указать в резюме ссылку на проект, в создании которого я участвовал.
Я пытался искать «opensource проекту требуется разработчик» и ничего актуального не нашёл. То есть нашёл полуразработанные проекты на java, php, но это, опять же, не то. Мои интересы: Python, C/C++, (Boost, LLVM, Qt...).
Наверняка я не один такой, поэтому надеюсь на отклики / идеи / ссылки на интересные проекты в очень зачаточном состоянии. Может быть соберём это всё в одном топике и он будет полезен не только мне.
… Хочется собрать несколько человек, обсудить и создать какой-то интересный проект, пусть без революционной идеи, пусть без новизны, пусть без профита, но свой. Чтобы видеть зарождение с нуля, видеть новые коммиты, добавляющие функциональность, читать чужой код и чужие комментарии, учась чему-то новому, получать опыт, обсуждать, спорить. Хочется потом иметь возможность указать в резюме ссылку на проект, в создании которого я участвовал.
Я пытался искать «opensource проекту требуется разработчик» и ничего актуального не нашёл. То есть нашёл полуразработанные проекты на java, php, но это, опять же, не то. Мои интересы: Python, C/C++, (Boost, LLVM, Qt...).
Наверняка я не один такой, поэтому надеюсь на отклики / идеи / ссылки на интересные проекты в очень зачаточном состоянии. Может быть соберём это всё в одном топике и он будет полезен не только мне.
+42
Information
- Rating
- Does not participate
- Location
- Россия
- Registered
- Activity